Re: [PATCH 1/3] Add meson build system

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Quoting Eric Engestrom (2018-01-05 05:34:53)
> On Wednesday, 2018-01-03 13:31:28 -0800, Dylan Baker wrote:
> > This patch adds a complete meson build system, including tests and
> > install. It has the necessary hooks to allow it be used as a subproject
> > for other meson based builds such as mesa.
> > 
> > Signed-off-by: Dylan Baker <dylan.c.baker@xxxxxxxxx>
> > ---
> >  .editorconfig               |   4 +-
> >  amdgpu/.editorconfig        |   5 +-
> >  amdgpu/meson.build          |  70 +++++++-
> >  data/meson.build            |  27 +++-
> >  etnaviv/meson.build         |  64 ++++++-
> >  exynos/meson.build          |  53 +++++-
> >  freedreno/meson.build       |  82 ++++++++-
> >  intel/meson.build           | 111 +++++++++++-
> >  libkms/meson.build          |  75 +++++++-
> >  man/meson.build             |  66 ++++++-
> >  meson.build                 | 378 +++++++++++++++++++++++++++++++++++++-
> >  meson_options.txt           |  38 ++++-
> >  nouveau/meson.build         |  65 ++++++-
> >  omap/meson.build            |  53 +++++-
> >  radeon/meson.build          |  65 ++++++-
> >  tegra/meson.build           |  52 +++++-
> >  tests/amdgpu/meson.build    |  40 ++++-
> >  tests/etnaviv/meson.build   |  54 +++++-
> >  tests/exynos/meson.build    |  54 +++++-
> >  tests/kms/meson.build       |  54 +++++-
> >  tests/kmstest/meson.build   |  28 +++-
> >  tests/meson.build           |  85 ++++++++-
> >  tests/modeprint/meson.build |  29 +++-
> >  tests/nouveau/meson.build   |  30 +++-
> >  tests/proptest/meson.build  |  30 +++-
> >  tests/radeon/meson.build    |  27 +++-
> >  tests/tegra/meson.build     |  27 +++-
> >  tests/util/meson.build      |  37 ++++-
> >  tests/vbltest/meson.build   |  28 +++-
> >  vc4/meson.build             |  28 +++-
> >  30 files changed, 1759 insertions(+)
> >  create mode 100644 amdgpu/meson.build
> >  create mode 100644 data/meson.build
> >  create mode 100644 etnaviv/meson.build
> >  create mode 100644 exynos/meson.build
> >  create mode 100644 freedreno/meson.build
> >  create mode 100644 intel/meson.build
> >  create mode 100644 libkms/meson.build
> >  create mode 100644 man/meson.build
> >  create mode 100644 meson.build
> >  create mode 100644 meson_options.txt
> >  create mode 100644 nouveau/meson.build
> >  create mode 100644 omap/meson.build
> >  create mode 100644 radeon/meson.build
> >  create mode 100644 tegra/meson.build
> >  create mode 100644 tests/amdgpu/meson.build
> >  create mode 100644 tests/etnaviv/meson.build
> >  create mode 100644 tests/exynos/meson.build
> >  create mode 100644 tests/kms/meson.build
> >  create mode 100644 tests/kmstest/meson.build
> >  create mode 100644 tests/meson.build
> >  create mode 100644 tests/modeprint/meson.build
> >  create mode 100644 tests/nouveau/meson.build
> >  create mode 100644 tests/proptest/meson.build
> >  create mode 100644 tests/radeon/meson.build
> >  create mode 100644 tests/tegra/meson.build
> >  create mode 100644 tests/util/meson.build
> >  create mode 100644 tests/vbltest/meson.build
> >  create mode 100644 vc4/meson.build
> > 
> > diff --git a/.editorconfig b/.editorconfig
> > index 893b7be..bbad3e6 100644
> > --- a/.editorconfig
> > +++ b/.editorconfig
> > @@ -17,3 +17,7 @@ indent_style = tab
> >  [*.m4]
> >  indent_style = space
> >  indent_size = 2
> > +
> > +[meson.build,meson_options.txt]
> 
> I think this needs to be
>   [{meson.build,meson_options.txt}]

You might be right.

> 
> > +indent_style = space
> > +indent_size = 2
> > diff --git a/amdgpu/.editorconfig b/amdgpu/.editorconfig
> > index 2528d67..0c758d6 100644
> > --- a/amdgpu/.editorconfig
> > +++ b/amdgpu/.editorconfig
> > @@ -7,3 +7,8 @@ indent_style = tab
> >  indent_size = 8
> >  tab_width = 8
> >  insert_final_newline = true
> > +
> > +[meson.build]
> > +indent_style = space
> > +indent_size = 2
> 
> These two should be inherited from the .editorconfig one level above

Nope, because the group right above this is [*], which overrides everything
above it.

> 
> > +insert_final_newline = false
> 
> That's weird; why?

I'll drop it

> 
> > diff --git a/amdgpu/meson.build b/amdgpu/meson.build
> > new file mode 100644
> > index 0000000..13bf88b
> > --- /dev/null
> > +++ b/amdgpu/meson.build
> > @@ -0,0 +1,70 @@
> > +# 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.
> > +
> > +files_amdgpu = files(
> > +  'amdgpu_asic_id.c',
> > +  'amdgpu_bo.c',
> > +  'amdgpu_cs.c',
> > +  'amdgpu_device.c',
> > +  'amdgpu_gpu_info.c',
> > +  'amdgpu_internal.h',
> > +  'amdgpu_vamgr.c',
> > +  'amdgpu_vm.c',
> > +  'util_hash.c',
> > +  'util_hash.h',
> > +  'util_hash_table.c',
> > +  'util_hash_table.h',
> 
> Should we clean up the list in libdrm (even though it's not in mesa),
> and only have files that need to be in these lists?
> Ie. remove all files that are included by other files in the list, such
> as all the headers in this list?
> 
> > +)
> > +
> > +libdrm_amdgpu = shared_library(
> > +  'drm_amdgpu',
> > +  [files_amdgpu, config_file],
> > +  c_args : [
> > +    warn_c_args,
> > +    '-DAMDGPU_ASIC_ID_TABLE="@0@"'.format(join_paths(get_option('datadir'), 'amdgpu.ids')),
> 
> This raises the question: do we want to support android?
> Also, isn't there a /libdrm/ missing here?

Android has it's own adroid.mk build system, and I don't see any special logic
in libdrm for the ARC++ stuff used by chromeOS like mesa has.

> 
> > +  ],
> > +  include_directories : [inc_root, inc_drm],
> > +  link_with : libdrm,
> > +  dependencies : [dep_pthread_stubs],
> 
> Nit: unnecessary brackets
> 
> > +  version : '1.0.0',
> > +  install : true,
> > +)
> > +
> > +install_headers('amdgpu.h', subdir : 'libdrm')
> > +
> > +pkg.generate(
> > +  name : 'libdrm_amdgpu',
> > +  libraries : libdrm_amdgpu,
> > +  subdirs : ['.', 'libdrm'],
> > +  version : meson.project_version(),
> > +  requires_private : 'libdrm',
> > +  description : 'Userspace interface to kernel DRM services for amdgpu',
> > +)
> > +
> > +ext_libdrm_amdgpu = declare_dependency(
> > +  link_with : [libdrm, libdrm_amdgpu],
> > +  include_directories : [inc_drm, include_directories('.')],
> > +)
> > +
> > +test(
> > +  'amdgpu-symbol-check',
> > +  prog_bash,
> > +  args : [files('amdgpu-symbol-check'), libdrm_amdgpu]
> > +)
> > diff --git a/data/meson.build b/data/meson.build
> > new file mode 100644
> > index 0000000..4990ca5
> > --- /dev/null
> > +++ b/data/meson.build
> > @@ -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.
> > +
> > +if with_amdgpu
> > +  install_data(
> > +    'amdgpu.ids',
> > +    install_mode : 'r--r--r--',
> > +    install_dir : join_paths(get_option('datadir'), 'libdrm'),
> 
> How about setting a variable in amdgpu/meson.build?
> 
> > +  )
> > +endif
> > diff --git a/etnaviv/meson.build b/etnaviv/meson.build
> > new file mode 100644
> > index 0000000..8f39775
> > --- /dev/null
> > +++ b/etnaviv/meson.build
> > @@ -0,0 +1,64 @@
> > +# 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.
> > +
> > +files_etnaviv = files(
> > +  'etnaviv_device.c',
> > +  'etnaviv_gpu.c',
> > +  'etnaviv_bo.c',
> > +  'etnaviv_bo_cache.c',
> > +  'etnaviv_perfmon.c',
> > +  'etnaviv_pipe.c',
> > +  'etnaviv_cmd_stream.c',
> > +  'etnaviv_drm.h',
> > +  'etnaviv_priv.h',
> > +)
> > +
> > +libdrm_etnaviv = shared_library(
> > +  'drm_etnaviv',
> > +  [files_etnaviv, config_file],
> > +  include_directories : [inc_root, inc_drm],
> > +  link_with : libdrm,
> > +  c_args : warn_c_args,
> > +  dependencies : [dep_pthread_stubs, dep_rt],
> > +  version : '1.0.0',
> > +  install : true,
> > +)
> > +
> > +install_headers('etnaviv_drmif.h', subdir : 'libdrm')
> > +
> > +pkg.generate(
> > +  name : 'libdrm_etnaviv',
> > +  libraries : libdrm_etnaviv,
> > +  subdirs : ['.', 'libdrm'],
> > +  version : meson.project_version(),
> > +  requires_private : 'libdrm',
> > +  description : 'Userspace interface to Tegra kernel DRM services',
> > +)
> > +
> > +ext_libdrm_etnaviv = declare_dependency(
> > +  link_with : [libdrm, libdrm_etnaviv],
> > +  include_directories : [inc_drm, include_directories('.')],
> > +)
> > +
> > +test(
> > +  'etnaviv-symbol-check',
> > +  prog_bash,
> > +  args : [files('etnaviv-symbol-check'), libdrm_etnaviv]
> > +)
> > diff --git a/exynos/meson.build b/exynos/meson.build
> > new file mode 100644
> > index 0000000..7da74aa
> > --- /dev/null
> > +++ b/exynos/meson.build
> > @@ -0,0 +1,53 @@
> > +# 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_exynos = shared_library(
> > +  'drm_exynos',
> > +  [files('exynos_drm.c', 'exynos_fimg2d.c', 'fimg2d_reg.h'), config_file],
> 
> Why skip files_exynos? I think I prefer the consistency, even if the var
> only contains two files.
> 
> > +  c_args : warn_c_args,
> > +  include_directories : [inc_root, inc_drm],
> > +  link_with : libdrm,
> > +  dependencies : [dep_pthread_stubs],
> > +  version : '1.0.0',
> > +  install : true,
> > +)
> > +
> > +install_headers('exynos_drmif.h', subdir : 'libdrm')
> > +install_headers('exynos_drm.h', 'exynos_fimg2d.h', subdir : 'exynos')
> > +
> > +ext_libdrm_exynos = declare_dependency(
> > +  link_with : [libdrm, libdrm_exynos],
> > +  include_directories : [inc_drm, include_directories('.')],
> > +)
> > +
> > +pkg.generate(
> > +  name : 'libdrm_exynos',
> > +  libraries : libdrm_exynos,
> > +  subdirs : ['.', 'libdrm', 'exynos'],
> > +  version : '0.7',
> > +  requires_private : 'libdrm',
> > +  description : 'Userspace interface to exynos kernel DRM services',
> > +)
> > +
> > +test(
> > +  'exynos-symbol-check',
> > +  prog_bash,
> > +  args : [files('exynos-symbol-check'), libdrm_exynos]
> > +)
> > diff --git a/freedreno/meson.build b/freedreno/meson.build
> > new file mode 100644
> > index 0000000..47d6e44
> > --- /dev/null
> > +++ b/freedreno/meson.build
> > @@ -0,0 +1,82 @@
> > +# 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.
> > +
> > +files_freedreno = 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 with_freedreno_kgsl != 'false'
> 
> (mentioned by someone already)
> 
> > +  files_freedreno += 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',
> > +  )
> > +endif
> > +
> > +libdrm_freedreno = shared_library(
> > +  'drm_freedreno',
> > +  [files_freedreno, config_file],
> > +  c_args : warn_c_args,
> > +  include_directories : [inc_root, inc_drm],
> > +  dependencies : [dep_valgrind, dep_pthread_stubs, dep_rt],
> > +  link_with : libdrm,
> > +  version : '1.0.0',
> > +  install : true,
> > +)
> > +
> > +ext_libdrm_freedreno = declare_dependency(
> > +  link_with : [libdrm, libdrm_freedreno],
> > +  include_directories : [inc_drm, include_directories('.')],
> > +)
> > +
> > +install_headers(
> > +  'freedreno_drmif.h', 'freedreno_ringbuffer.h',
> > +  subdir : 'freedreno'
> > +)
> > +
> > +pkg.generate(
> > +  name : 'libdrm_freedreno',
> > +  libraries : libdrm_freedreno,
> > +  subdirs : ['.', 'libdrm', 'freedreno'],
> > +  version : '0.7',
> > +  requires_private : 'libdrm',
> > +  description : 'Userspace interface to freedreno kernel DRM services',
> > +)
> > +
> > +test(
> > +  'freedreno-symbol-check',
> > +  prog_bash,
> > +  args : [files('freedreno-symbol-check'), libdrm_freedreno]
> > +)
> > diff --git a/intel/meson.build b/intel/meson.build
> > new file mode 100644
> > index 0000000..18f35c0
> > --- /dev/null
> > +++ b/intel/meson.build
> > @@ -0,0 +1,111 @@
> > +# 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.
> > +
> > +files_intel = 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',
> > +  [files_intel, config_file],
> > +  include_directories : [inc_root, inc_drm],
> > +  link_with : libdrm,
> > +  dependencies : [dep_pciaccess, dep_pthread_stubs, dep_rt, dep_valgrind],
> > +  c_args : warn_c_args,
> > +  version : '1.0.0',
> > +  install : true,
> > +)
> > +
> > +ext_libdrm_intel = declare_dependency(
> > +  link_with : [libdrm, libdrm_intel],
> > +  include_directories : [inc_drm, include_directories('.')],
> > +)
> > +
> > +install_headers(
> > +  'intel_bufmgr.h', 'intel_aub.h', 'intel_debug.h',
> > +  subdir : 'libdrm',
> > +)
> > +
> > +pkg.generate(
> > +  name : 'libdrm_intel',
> > +  libraries : libdrm_intel,
> > +  subdirs : ['.', 'libdrm'],
> > +  version : meson.project_version(),
> > +  requires : 'libdrm',
> > +  description : 'Userspace interface to intel kernel DRM services',
> > +)
> > +
> > +test_decode = executable(
> > +  'test_decode',
> > +  files('test_decode.c'),
> > +  include_directories : [inc_root, inc_drm],
> > +  link_with : [libdrm, libdrm_intel],
> > +  c_args : warn_c_args,
> > +)
> > +
> > +test(
> > +  'gen4-3d.batch',
> > +  prog_bash,
> > +  args : files('tests/gen4-3d.batch.sh'),
> > +  workdir : meson.current_build_dir(),
> > +)
> > +test(
> > +  'gen45-3d.batch',
> > +  prog_bash,
> > +  args : files('tests/gm45-3d.batch.sh'),
> > +  workdir : meson.current_build_dir(),
> > +)
> > +test(
> > +  'gen5-3d.batch',
> > +  prog_bash,
> > +  args : files('tests/gen5-3d.batch.sh'),
> > +  workdir : meson.current_build_dir(),
> > +)
> > +test(
> > +  'gen6-3d.batch',
> > +  prog_bash,
> > +  args : files('tests/gen6-3d.batch.sh'),
> > +  workdir : meson.current_build_dir(),
> > +)
> > +test(
> > +  'gen7-3d.batch',
> > +  prog_bash,
> > +  args : files('tests/gen7-3d.batch.sh'),
> > +  workdir : meson.current_build_dir(),
> > +)
> > +test(
> > +  'gen7-2d-copy.batch',
> > +  prog_bash,
> > +  args : files('tests/gen7-2d-copy.batch.sh'),
> > +  workdir : meson.current_build_dir(),
> > +)
> > +test(
> > +  'intel-symbol-check',
> > +  prog_bash,
> > +  args : [files('intel-symbol-check'), libdrm_intel]
> > +)
> > diff --git a/libkms/meson.build b/libkms/meson.build
> > new file mode 100644
> > index 0000000..80afc89
> > --- /dev/null
> > +++ b/libkms/meson.build
> > @@ -0,0 +1,75 @@
> > +# 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_include = [inc_root, inc_drm]
> > +files_libkms = files(
> > +  'internal.h',
> > +  'linux.c',
> > +  'dumb.c',
> > +  'api.c',
> > +)
> > +if with_vmwgfx
> > +  files_libkms += files('vmwgfx.c')
> > +endif
> > +if with_intel
> > +  files_libkms += files('intel.c')
> > +endif
> > +if with_nouveau
> > +  files_libkms += files('nouveau.c')
> > +endif
> > +if with_radeon
> > +  files_libkms += files('radeon.c')
> > +endif
> > +if with_exynos
> > +  files_libkms += files('exynos.c')
> > +  libkms_include += include_directories('../exynos')
> > +endif
> > +
> > +libkms = shared_library(
> > +  'kms',
> > +  [files_libkms, config_file],
> > +  c_args : warn_c_args,
> > +  include_directories : libkms_include,
> > +  link_with : libdrm,
> > +  version : '1.0.0',
> > +  install : true,
> > +)
> > +
> > +ext_libkms = declare_dependency(
> > +  link_with : [libdrm, libkms],
> > +  include_directories : [libkms_include],
> > +)
> > +
> > +install_headers('libkms.h', subdir : 'libkms')
> > +
> > +pkg.generate(
> > +  name : 'libkms',
> > +  libraries : libkms,
> > +  subdirs : ['libkms'],
> > +  version : '1.0.0',
> > +  requires_private : 'libdrm',
> > +  description : 'Library that abstracts away the different mm interfaces for kernel drivers',
> > +)
> > +
> > +test(
> > +  'kms-symbol-check',
> > +  prog_bash,
> > +  args : [files('kms-symbol-check'), libkms]
> > +)
> > diff --git a/man/meson.build b/man/meson.build
> > new file mode 100644
> > index 0000000..0b2efe5
> > --- /dev/null
> > +++ b/man/meson.build
> > @@ -0,0 +1,66 @@
> > +# 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_args = [
> > +  '--stringparam', 'man.authors.section.enabled', '0',
> > +  '--stringparam', 'man.copyright.section.enabled', '0',
> > +  '--stringparam', 'funcsynopsis.style', 'ansi',
> > +  '--stringparam', 'man.output.quietly', '1',
> > +  '--nonet', manpage_style,
> > +]
> > +
> > +xmls = [
> > +  ['drm', '7'], ['drm-kms', '7'], ['drm-memory', '7'], ['drmAvailable', '3'],
> > +  ['drmHandleEvent', '3'], ['drmModeGetResources', '3']
> > +]
> > +foreach x : xmls
> > +  m = x[0]
> > +  s = x[1]
> > +  custom_target(
> > +    m,
> > +    input : files('@0@.xml'.format(m)),
> > +    output : '@0@.@1@'.format(m, s),
> > +    command : [prog_xslt, '-o', '@OUTPUT@', xsltproc_args, '@INPUT0@'],
> > +    install : true,
> > +    install_dir : join_paths(get_option('datadir'), 'man', 'man@0@'.format(s)),
> 
> get_option('mandir')
> 
> > +    build_by_default : true,
> > +  )
> > +endforeach
> > +
> > +foreach x : ['drm-mm', 'drm-gem', 'drm-ttm']
> > +  gen = custom_target(
> > +    'gen-@0@'.format(x),
> > +    input : 'drm-memory.xml',
> > +    output : '@0@.xml'.format(x),
> > +    command : [prog_sed, '-e',
> > +               's@^\.so \([a-z_]\+\)\.\([0-9]\)$$@\.so man\2\/\1\.\2@',
> > +               '@INPUT@'],
> > +    capture : true,
> > +  )
> > +  custom_target(
> > +    '@0@.7'.format(x),
> > +    input : gen,
> > +    output : '@0@.7'.format(x, '7'),
> > +    command : [prog_xslt, '-o', '@OUTPUT@', xsltproc_args, '@INPUT@'],
> > +    install : true,
> > +    install_dir : join_paths(get_option('datadir'), 'man', 'man7'),
> 
> ditto: mandir
> 
> > +    build_by_default : true,
> > +  )
> > +endforeach
> > diff --git a/meson.build b/meson.build
> > new file mode 100644
> > index 0000000..74ae222
> > --- /dev/null
> > +++ b/meson.build
> > @@ -0,0 +1,378 @@
> > +# 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.89',
> > +  license : 'MIT',
> > +  default_options : ['buildtype=debugoptimized', 'c_std=gnu99'],
> 
> gnu99, are you sure?

libdrm makes extensive use of typeof(), which is a gnu extension. I don't think
it's ever been included in a iso C standard, has it?

> 
> also, we should specify the version of meson we support here:
> +  meson_version : '>= 0.42',
> 
> > +)
> > +
> > +pkg = import('pkgconfig')
> > +
> > +with_udev = get_option('udev')
> > +with_freedreno_kgsl = get_option('freedreno-kgls')
> > +with_install_tests = get_option('install_test_programs')
> > +with_cairo_tests = get_option('cairo_tests')
> > +with_valgrind = get_option('valgrind')
> > +
> > +config = configuration_data()
> > +
> > +# TODO: openbsd is guess, the others are correct
> > +if ['freebsd', 'dragonfly', 'netbsd', 'openbsd'].contains(host_machine.system())
> 
> Let's make that *BSD until we know of a special case?
>   if host_machine.system().to_upper.endswith('BSD')

dragonflybsd has "dragonfly" as it's identifier, which doesn't end with bsd.
Also, I've tested this on all of the bsds except openbsd, so I know those work.

> 
> > +  dep_pthread_stubs = dependency('pthread-stubs', version : '>= 0.4')
> > +else
> > +  dep_pthread_stubs = []
> > +endif
> > +dep_threads = dependency('threads')
> > +
> > +cc = meson.get_compiler('c')
> > +# Check for atomics
> > +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); }
> > +    ''',
> > +    name : 'Intel Atomics')
> > +  config.set10('HAVE_LIBDRM_ATOMIC_PRIMITIVES', true)
> 
> Will be unset in the other cases, instead of being set to 0
> 
> > +  with_atomics = true
> > +elif cc.has_header('atomic_ops.h')
> > +  config.set10('HAVE_LIB_ATOMIC_OPS', true)
> 
> Ditto.
> 
> Those can be easily fixed by setting them to false first, just before
> the if chain:
>   config.set10('HAVE_LIBDRM_ATOMIC_PRIMITIVES', false)
>   config.set10('HAVE_LIB_ATOMIC_OPS', false)
> 
> > +  with_atomics = true
> > +elif cc.has_function('atomic_cas_uint')
> > +  with_atomics = true
> > +else
> > +  with_atomics = false
> > +endif
> > +
> > +with_intel = false
> > +_intel = get_option('intel')
> > +if _intel != 'false'
> > +  if _intel == 'true' and not with_atomics
> > +    error('libdrm_intel requires atomics.')
> > +  endif
> > +  with_intel = _intel == 'true' or host_machine.cpu_family().startswith('x86')
> > +endif
> > +
> > +with_radoen = false
> 
> typo
> 
> > +_radeon = get_option('radeon')
> > +if _radeon != 'false'
> > +  if _radeon == 'true' and not with_atomics
> > +    error('libdrm_radeon requires atomics.')
> > +  endif
> > +  with_radeon = true
> > +endif
> > +
> > +with_amdgpu = false
> > +_amdgpu = get_option('amdgpu')
> > +if _amdgpu != 'false'
> > +  if _amdgpu == 'true' and not with_atomics
> > +    error('libdrm_amdgpu requires atomics.')
> > +  endif
> > +  with_amdgpu = true
> > +endif
> > +
> > +with_nouveau = false
> > +_nouveau = get_option('nouveau')
> > +if _nouveau != 'false'
> > +  if _nouveau == 'true' and not with_atomics
> > +    error('libdrm_nouveau requires atomics.')
> > +  endif
> > +  with_nouveau = true
> > +endif
> > +
> > +with_vmwgfx = false
> > +_vmwgfx = get_option('vmwgfx')
> > +if _vmwgfx != 'false'
> > +  with_vmwgfx = true
> > +endif
> > +
> > +with_omap = false
> > +_omap = get_option('omap')
> > +if _omap != 'false'
> > +  if _omap == 'true' and not with_atomics
> > +    error('libdrm_omap requires atomics.')
> > +  endif
> > +  with_omap = _omap == 'true' or ['arm', 'aarch64'].contains(host_machine.cpu_family())
> > +endif
> > +
> > +with_freedreno = false
> > +_freedreno = get_option('freedreno')
> > +if _freedreno != 'false'
> > +  if _freedreno == 'true' and not with_atomics
> > +    error('libdrm_freedreno requires atomics.')
> > +  endif
> > +  with_freedreno = _freedreno == 'true' or ['arm', 'aarch64'].contains(host_machine.cpu_family())
> > +endif
> > +
> > +with_tegra = false
> > +_tegra = get_option('tegra')
> > +if _tegra != 'false'
> > +  if _tegra == 'true' and not with_atomics
> > +    error('libdrm_tegra requires atomics.')
> > +  endif
> > +  with_tegra = _tegra == 'true' or ['arm', 'aarch64'].contains(host_machine.cpu_family())
> > +endif
> > +
> > +with_etnaviv = false
> > +_etnaviv = get_option('etnaviv')
> > +if _etnaviv != 'false'
> > +  if _etnaviv == 'true' and not with_atomics
> > +    error('libdrm_etnaviv requires atomics.')
> > +  endif
> > +  with_etnaviv = _etnaviv == 'true' or ['arm', 'aarch64'].contains(host_machine.cpu_family())
> > +endif
> > +
> > +with_exynos = false
> > +_exynos = get_option('exynos')
> > +if _exynos != 'false'
> > +  with_exynos = _exynos == 'true' or ['arm', 'aarch64'].contains(host_machine.cpu_family())
> > +endif
> > +
> > +with_vc4 = false
> > +_vc4 = get_option('vc4')
> > +if _vc4 != 'false'
> > +  with_vc4 = _vc4 == 'true' or ['arm', 'aarch64'].contains(host_machine.cpu_family())
> > +endif
> > +
> > +# XXX: Aparently only freebsd and dragonfly bsd actually need this (and
> > +# gnu/kfreebsd), not openbsd and netbsd
> > +with_libkms = false
> > +_libkms = get_option('libkms')
> > +if _libkms != 'false'
> > +  with_libkms = _libkms == 'true' or ['linux', 'freebsd', 'dragonfly'].contains(host_machine.system())
> > +endif
> > +
> > +if with_udev
> > +  dep_udev = dependency('udev')
> > +  config.set10('UDEV', true)
> > +else
> > +  dep_udev = []
> > +endif
> > +
> > +# Among others FreeBSD does not have a separate dl library.
> > +if not cc.has_function('dlsym')
> > +  dep_dl = cc.find_library('dl', required : with_nouveau)
> > +else
> > +  dep_dl = []
> > +endif
> > +# clock_gettime might require -rt, or it might not. find out
> > +if not cc.has_function('clock_gettime', prefix : '#define _GNU_SOURCE\n#include <time.h>')
> > +  # XXX: untested
> > +  dep_rt = cc.find_library('rt')
> > +else
> > +  dep_rt = []
> > +endif
> > +dep_m = cc.find_library('m', required : false)
> > +if cc.has_header('sys/sysctl.h')
> > +  config.set10('HAVE_SYS_SYSCTL_H', true)
> > +endif
> > +if cc.has_header('sys/select.h')
> > +  config.set10('HAVE_SYS_SELECT_H', true)
> > +endif
> > +if cc.has_header_symbol('sys/sysmacros.h', 'major')
> > +  config.set10('MAJOR_IN_SYSMACROS', true)
> > +elif cc.has_header_symbol('sys/mkdev.h', 'major')
> > +  config.set10('MAJOR_IN_MKDEV', true)
> > +endif
> > +if cc.has_function('open_memstream')
> > +  config.set10('HAVE_OPEN_MEMSTREAM', true)
> > +endif
> > +
> > +warn_c_args = []
> > +foreach a : ['-Wall', '-Wextra', '-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', '-Winline', '-Wshadow', 
> > +             '-Wdeclaration-after-statement', '-Wold-style-definition']
> > +  if cc.has_argument(a)
> > +    warn_c_args += a
> > +  endif
> > +endforeach
> > +# GCC will never error for -Wno-*, so check for -W* then add -Wno-* to the list
> > +# of options
> > +foreach a : ['unused-parameter', 'attributes', 'long-long', 
> > +             'missing-field-initializers']
> > +  if cc.has_argument('-W@0@'.format(a))
> > +    warn_c_args += '-Wno-@0@'.format(a)
> > +  endif
> > +endforeach
> > +
> > +
> > +dep_pciaccess = dependency('pciaccess', version : '>= 0.10', required : with_intel)
> > +dep_cunit = dependency('cunit', version : '>= 2.1', required : false)
> > +dep_cairo = dependency('cairo', required : with_cairo_tests == 'true')
> > +dep_valgrind = dependency('valgrind', required : with_valgrind == 'true')
> > +
> > +with_man_pages = get_option('man_pages')
> > +prog_xslt = find_program('xsltproc', required : with_man_pages == 'true')
> > +prog_sed = find_program('sed', required : with_man_pages == 'true')
> > +manpage_style = 'http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl'
> > +if prog_xslt.found()
> > +  if run_command(prog_xslt, '--nonet', manpage_style).returncode() != 0
> > +    if with_man_pages == 'true'
> > +      error('Manpage style sheet cannot be found')
> > +    endif
> > +    with_man_pages = 'false'
> > +  endif
> > +endif
> > +with_man_pages = with_man_pages != 'false' and prog_xslt.found() and prog_sed.found()
> > +
> > +# Used for tets
> > +prog_bash = find_program('bash')
> > +
> > +if cc.compiles('''int foo_hidden(void) __attribute__((visibility(("hidden"))));''',
> > +               name : 'compiler supports __attribute__(("hidden"))')
> > +  config.set10('HAVE_VISIBILITY', true)
> > +endif
> > +
> > +foreach t : [[with_intel, 'INTEL'], [with_vmwgfx, 'VMWGFX'],
> > +             [with_nouveau, 'NOUVEAU'], [with_omap, 'OMAP'],
> > +             [with_exynos, 'EXYNOS'], [with_freedreno, 'FREEDRENO'],
> > +             [with_tegra, 'TEGRA'], [with_vc4, 'VC4'],
> > +             [with_etnaviv, 'ETNAVIV'], [with_install_tests, 'INSTALL_TESTS']]
> 
> HAVE_INSTALL_TESTS is not used in C files, you can remove it from this list :)
> 
> > +  e = t[0]
> > +  if e
> 
> Why the temp var?
> 
> > +    config.set10('HAVE_@0@'.format(t[1]), true)
> 
> I'll add -Wundef when I have some time and go through those so we can have
>   config.set10('HAVE_@0@'.format(t[1]), t[0])
> 
> Then we can eventually switch to -Werror=undef :D
> 
> > +  endif
> > +endforeach
> > +if with_freedreno_kgsl
> > +  if not with_freedreno
> > +    error('cannot enable freedreno-kgsl without freedreno support')
> > +  endif
> > +  config.set10('HAVE_FREEDRENO_KGSL', true)
> > +endif
> 
> > +if with_amdgpu
> > +  config.set10('HAVE_AMDGPU', true)
> > +  if dep_cunit.found()
> > +    config.set10('HAVE_CUNIT', true)
> > +  endif
> > +endif
> 
> These two are actually unused, and should be removed from configure.ac :)
> 
> > +if dep_cairo.found()
> > +  config.set10('HAVE_CAIRO', true)
> > +endif
> > +if dep_valgrind.found()
> > +  config.set10('HAVE_VALGRIND', true)
> > +endif
> > +
> > +config.set10('_GNU_SOURCE', true)
> > +config_file = configure_file(
> > +  configuration : config,
> > +  output : 'config.h',
> > +)
> > +add_project_arguments('-DHAVE_CONFIG_H', language : 'c')
> > +
> > +inc_root = include_directories('.')
> > +inc_drm = include_directories('include/drm')
> > +
> > +files_libdrm = 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',
> > +)
> > +
> > +libdrm = shared_library(
> > +  'drm',
> > +  [files_libdrm, config_file],
> > +  c_args : warn_c_args,
> > +  dependencies : [dep_udev, dep_valgrind, dep_rt, dep_m],
> > +  include_directories : inc_drm,
> > +  version : '2.4.0',
> > +  install : true,
> > +)
> > +
> > +ext_libdrm = declare_dependency(
> > +  link_with : libdrm,
> > +  include_directories : inc_drm,
> > +)
> > +
> > +install_headers('libsync.h', 'xf86drm.h', 'xf86drmMode.h')
> > +install_headers(
> > +     'include/drm/drm.h', 'include/drm/drm_fourcc.h', 'include/drm/drm_mode.h',
> > +     'include/drm/drm_sarea.h', 'include/drm/i915_drm.h',
> > +     'include/drm/mach64_drm.h', 'include/drm/mga_drm.h',
> > +     'include/drm/nouveau_drm.h', 'include/drm/qxl_drm.h',
> > +     'include/drm/r128_drm.h', 'include/drm/radeon_drm.h',
> > +     'include/drm/amdgpu_drm.h', 'include/drm/savage_drm.h',
> > +     'include/drm/sis_drm.h', 'include/drm/tegra_drm.h', 'include/drm/vc4_drm.h',
> > +     'include/drm/via_drm.h', 'include/drm/virtgpu_drm.h',
> 
> Do we want to only install the headers for the libs that are enabled?
> (Not sure what autotools does)

This is copied exactly from autotools (which is why vmwgfx_drm.h is split. I
agree that this is less than ideal, and we should only install the headers if
we're building the associated libdrm_* library.

> 
> > +  subdir : 'libdrm',
> > +)
> > +if with_vmwgfx
> > +  install_headers('include/drm/vmwgfx_drm.h', subdir : 'libdrm')
> > +endif
> > +
> > +pkg.generate(
> > +  name : 'libdrm',
> > +  libraries : libdrm,
> > +  subdirs : ['.', 'libdrm'],
> > +  version : meson.project_version(),
> > +  description : 'Userspace interface to kernel DRM services',
> > +)
> > + 
> > +if with_libkms
> > +  subdir('libkms')
> > +endif
> > +if with_intel
> > +  subdir('intel')
> > +endif
> > +if with_nouveau
> > +  subdir('nouveau')
> > +endif
> > +if with_radeon
> > +  subdir('radeon')
> > +endif
> > +if with_amdgpu
> > +  subdir('amdgpu')
> > +endif
> > +if with_omap
> > +  subdir('omap')
> > +endif
> > +if with_exynos
> > +  subdir('exynos')
> > +endif
> > +if with_freedreno
> > +  subdir('freedreno')
> > +endif
> > +if with_tegra
> > +  subdir('tegra')
> > +endif
> > +if with_vc4
> > +  subdir('vc4')
> > +endif
> > +if with_etnaviv
> > +  subdir('etnaviv')
> > +endif
> > +if with_man_pages
> > +  subdir('man')
> > +endif
> > +subdir('data')
> > +subdir('tests')
> > diff --git a/meson_options.txt b/meson_options.txt
> > new file mode 100644
> > index 0000000..7c2fa4f
> > --- /dev/null
> > +++ b/meson_options.txt
> > @@ -0,0 +1,38 @@
> > +# 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.
> > +
> > +option('libkms',      type : 'combo', value : 'auto',  choices : ['true', 'false', 'auto'])
> > +option('intel',       type : 'combo', value : 'auto',  choices : ['true', 'false', 'auto'])
> > +option('radeon',      type : 'combo', value : 'auto',  choices : ['true', 'false', 'auto'])
> > +option('amdgpu',      type : 'combo', value : 'auto',  choices : ['true', 'false', 'auto'])
> > +option('nouveau',     type : 'combo', value : 'auto',  choices : ['true', 'false', 'auto'])
> > +option('vmwgfx',      type : 'combo', value : 'true',  choices : ['true', 'false', 'auto'])
> > +option('omap',        type : 'combo', value : 'false', choices : ['true', 'false', 'auto'])
> > +option('exynos',      type : 'combo', value : 'false', choices : ['true', 'false', 'auto'])
> > +option('freedreno',   type : 'combo', value : 'auto',  choices : ['true', 'false', 'auto'])
> > +option('tegra',       type : 'combo', value : 'false', choices : ['true', 'false', 'auto'])
> > +option('vc4',         type : 'combo', value : 'auto',  choices : ['true', 'false', 'auto'])
> > +option('etnaviv',     type : 'combo', value : 'false', choices : ['true', 'false', 'auto'])
> > +option('cairo_tests', type : 'combo', value : 'auto',  choices : ['true', 'false', 'auto'])
> > +option('man_pages',   type : 'combo', value : 'auto',  choices : ['true', 'false', 'auto'])
> > +option('valgrind',    type : 'combo', value : 'auto',  choices : ['true', 'false', 'auto'])
> > +option('freedreno-kgls',        type : 'boolean', value : false)
> > +option('install_test_programs', type : 'boolean', value : false)
> > +option('udev',                  type : 'boolean', value : false)
> 
> (as mentioned, descriptions would be good; copy/pasting the ones in
> configure.ac should be enough)
> 
> > diff --git a/nouveau/meson.build b/nouveau/meson.build
> > new file mode 100644
> > index 0000000..a50e4f7
> > --- /dev/null
> > +++ b/nouveau/meson.build
> > @@ -0,0 +1,65 @@
> > +# 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.
> > +
> > +files_nouveau = files(
> > +     'nouveau.c',
> > +     'pushbuf.c',
> > +     'bufctx.c',
> > +     'abi16.c',
> > +     'private.h',
> > +)
> > +
> > +libdrm_nouveau = shared_library(
> > +  'drm_nouveau',
> > +  [files_nouveau, config_file],
> > +  c_args : warn_c_args,
> > +  include_directories : [inc_root, inc_drm],
> > +  link_with : libdrm,
> > +  dependencies : dep_threads,
> > +  version : '2.0.0',
> > +  install : true,
> > +)
> > +
> > +ext_libdrm_nouveau = declare_dependency(
> > +  link_with : [libdrm, libdrm_nouveau],
> > +  include_directories : [inc_drm, include_directories('.')],
> > +)
> > +
> > +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 : 'libdrm/nouveau/nvif'
> > +)
> > +
> > +pkg.generate(
> > +  name : 'libdrm_nouveau',
> > +  libraries : libdrm_nouveau,
> > +  subdirs : ['.', 'nouveau'],
> > +  version : meson.project_version(),
> > +  requires_private : 'libdrm',
> > +  description : 'Userspace interface to nouveau kernel DRM services',
> > +)
> > +
> > +test(
> > +  'nouveau-symbol-check',
> > +  prog_bash,
> > +  args : [files('nouveau-symbol-check'), libdrm_nouveau]
> > +)
> > diff --git a/omap/meson.build b/omap/meson.build
> > new file mode 100644
> > index 0000000..1881087
> > --- /dev/null
> > +++ b/omap/meson.build
> > @@ -0,0 +1,53 @@
> > +# 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_omap = shared_library(
> > +  'drm_omap',
> > +  [files('omap_drm.c'), config_file],
> > +  include_directories : [inc_root, inc_drm],
> > +  c_args : warn_c_args,
> > +  link_with : libdrm,
> > +  dependencies : [dep_pthread_stubs],
> > +  version : '1.0.0',
> > +  install : true,
> > +)
> > +
> > +ext_libdrm_omap = declare_dependency(
> > +  link_with : [libdrm, libdrm_omap],
> > +  include_directories : [inc_drm, include_directories('.')],
> > +)
> > +
> > +install_headers('omap_drmif.h', subdir : 'libdrm')
> > +install_headers('omap_drm.h', subdir : 'omap')
> > +
> > +pkg.generate(
> > +  name : 'libdrm_omap',
> > +  libraries : libdrm_omap,
> > +  subdirs : ['.', 'libdrm', 'omap'],
> > +  version : '0.6',
> > +  requires_private : 'libdrm',
> > +  description : 'Userspace interface to omap kernel DRM services',
> > +)
> > +
> > +test(
> > +  'omap-symbol-check',
> > +  prog_bash,
> > +  args : [files('omap-symbol-check'), libdrm_omap]
> > +)
> > diff --git a/radeon/meson.build b/radeon/meson.build
> > new file mode 100644
> > index 0000000..f41c5c4
> > --- /dev/null
> > +++ b/radeon/meson.build
> > @@ -0,0 +1,65 @@
> > +# 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.
> > +
> > +files_radeon = 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',
> > +  [files_radeon, config_file],
> > +  c_args : warn_c_args,
> > +  include_directories : [inc_root, inc_drm],
> > +  link_with : libdrm,
> > +  dependencies : [dep_pthread_stubs],
> > +  version : '1.0.1',
> > +  install : true,
> > +)
> > +
> > +ext_libdrm_radeon = declare_dependency(
> > +  link_with : [libdrm, libdrm_radeon],
> > +  include_directories : [inc_drm, include_directories('.')],
> > +)
> > +
> > +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',
> > +  libraries : libdrm_radeon,
> > +  subdirs : ['.', 'libdrm'],
> > +  version : meson.project_version(),
> > +  requires_private : 'libdrm',
> > +  description : 'Userspace interface to kernel DRM services for radeon',
> > +)
> > +
> > +test(
> > +  'radeon-symbol-check',
> > +  prog_bash,
> > +  args : [files('radeon-symbol-check'), libdrm_radeon]
> > +)
> > diff --git a/tegra/meson.build b/tegra/meson.build
> > new file mode 100644
> > index 0000000..568531c
> > --- /dev/null
> > +++ b/tegra/meson.build
> > @@ -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.
> > +
> > +libdrm_tegra = shared_library(
> > +  'drm_tegra',
> > +  [files('private.h', 'tegra.c'), config_file],
> > +  include_directories : [inc_root, inc_drm],
> > +  link_with : libdrm,
> > +  dependencies : [dep_pthread_stubs],
> > +  c_args : warn_c_args,
> > +  version : '0.0.0',
> > +  install : true,
> > +)
> > +
> > +ext_libdrm_tegra = declare_dependency(
> > +  link_with : [libdrm, libdrm_tegra],
> > +  include_directories : [inc_drm, include_directories('.')],
> > +)
> > +
> > +install_headers('tegra.h', subdir : 'libdrm')
> > +
> > +pkg.generate(
> > +  name : 'libdrm_tegra',
> > +  libraries : libdrm_tegra,
> > +  subdirs : ['.', 'libdrm'],
> > +  version : meson.project_version(),
> > +  requires_private : 'libdrm',
> > +  description : 'Userspace interface to Tegra kernel DRM services',
> > +)
> > +
> > +test(
> > +  'tegra-symbol-check',
> > +  prog_bash,
> > +  args : [files('tegra-symbol-check'), libdrm_tegra]
> > +)
> > diff --git a/tests/amdgpu/meson.build b/tests/amdgpu/meson.build
> > new file mode 100644
> > index 0000000..5a07ce2
> > --- /dev/null
> > +++ b/tests/amdgpu/meson.build
> > @@ -0,0 +1,40 @@
> > +# 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.
> > +
> > +files_amdgpu_test = files(
> > +  'amdgpu_test.c',
> > +  'basic_tests.c',
> > +  'bo_tests.c',
> > +  'cs_tests.c',
> > +  'vce_tests.c',
> > +  'uvd_enc_tests.c',
> > +  'vcn_tests.c',
> > +  'deadlock_tests.c',
> > +  'vm_tests.c',
> > +)
> > +
> > +amdgpu_test = executable(
> > +  'amdgpu_test',
> > +  files_amdgpu_test,
> > +  dependencies : [dep_cunit, dep_threads],
> > +  include_directories : [inc_root, inc_drm, include_directories('../../amdgpu')],
> 
> Not a fan of going back up the tree, but... meh

I'm just not a huge fan of polluting the namespace for an include that is used
once.

> 
> > +  link_with : [libdrm, libdrm_amdgpu],
> > +  install : with_install_tests,
> > +)
> > diff --git a/tests/etnaviv/meson.build b/tests/etnaviv/meson.build
> > new file mode 100644
> > index 0000000..32c5cee
> > --- /dev/null
> > +++ b/tests/etnaviv/meson.build
> > @@ -0,0 +1,54 @@
> > +# 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.
> > +
> > +inc_etnaviv_tests = [inc_root, inc_drm, include_directories('../../etnaviv')]
> > +
> > +etnaviv_2d_test_files = files(
> > +  'cmdstream.xml.h',
> > +  'etnaviv_2d_test.c',
> > +  'state.xml.h',
> > +  'state_2d.xml.h',
> > +  'write_bmp.c',
> > +  'write_bmp.h',
> > +)
> > +
> > +etnaviv_2d_test = executable(
> > +  'etnaviv_2d_test',
> > +  etnaviv_2d_test_files,
> > +  include_directories : inc_etnaviv_tests,
> > +  link_with : [libdrm, libdrm_etnaviv],
> > +  install : with_install_tests,
> > +)
> > +
> > +etnaviv_cmd_stream_test = executable(
> > +  'etnaviv_cmd_stream_test',
> > +  files('etnaviv_cmd_stream_test.c'),
> > +  include_directories : inc_etnaviv_tests,
> > +  link_with : [libdrm, libdrm_etnaviv],
> > +  install : with_install_tests,
> > +)
> > +
> > +etnaviv_bo_cache_test = executable(
> > +  'etnaviv_bo_cache_test',
> > +  files('etnaviv_bo_cache_test.c'),
> > +  include_directories : inc_etnaviv_tests,
> > +  link_with : [libdrm, libdrm_etnaviv],
> > +  install : with_install_tests,
> > +)
> > diff --git a/tests/exynos/meson.build b/tests/exynos/meson.build
> > new file mode 100644
> > index 0000000..940c3ce
> > --- /dev/null
> > +++ b/tests/exynos/meson.build
> > @@ -0,0 +1,54 @@
> > +# 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.
> > +
> > +inc_exynos = include_directories('../../exynos')
> > +
> > +if with_libkms
> > +  exynos_fimg2d_test = executable(
> > +    'exynos_fimg2d_test',
> > +    files('exynos_fimg2d_test.c'),
> > +    c_args : warn_c_args,
> > +    include_directories : [inc_root, inc_drm, inc_exynos,
> > +                           include_directories('../../libkms')],
> > +    link_with : [libdrm, libkms, libdrm_exynos],
> > +    dependencies : dep_threads,
> > +    install : with_install_tests,
> > +  )
> > +endif
> > +
> > +exynos_fimg2d_perf = executable(
> > +  'exynos_fimg2d_perf',
> > +  files('exynos_fimg2d_perf.c'),
> > +  c_args : warn_c_args,
> > +  include_directories : [inc_root, inc_drm, inc_exynos],
> > +  link_with : [libdrm, libdrm_exynos],
> > +  dependencies : dep_threads,
> > +  install : with_install_tests,
> > +)
> > +
> > +exynos_fimg2d_event = executable(
> > +  'exynos_fimg2d_event',
> > +  files('exynos_fimg2d_event.c'),
> > +  c_args : warn_c_args,
> > +  include_directories : [inc_root, inc_drm, inc_exynos],
> > +  link_with : [libdrm, libdrm_exynos],
> > +  dependencies : dep_threads,
> > +  install : with_install_tests,
> > +)
> > diff --git a/tests/kms/meson.build b/tests/kms/meson.build
> > new file mode 100644
> > index 0000000..e991913
> > --- /dev/null
> > +++ b/tests/kms/meson.build
> > @@ -0,0 +1,54 @@
> > +# 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_test_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',
> > +)
> > +
> > +libkms_test = static_library(
> > +  'kms-test',
> > +  libkms_test_files,
> > +  include_directories : [inc_root, inc_tests, inc_drm],
> > +  link_with : libdrm,
> > +  c_args : warn_c_args,
> > +)
> > +
> > +kms_steal_crtc = executable(
> > +  'kms-steal-crtc',
> > +  files('kms-steal-crtc.c'),
> > +  dependencies : dep_cairo,
> > +  include_directories : [inc_root, inc_tests, inc_drm],
> > +  link_with : [libkms_test, libutil],
> > +  install : with_install_tests,
> > +)
> > +
> > +kms_universal_planes = executable(
> > +  'kms-universal-lanes',
> > +  files('kms-universal-planes.c'),
> > +  dependencies : dep_cairo,
> > +  include_directories : [inc_root, inc_tests, inc_drm],
> > +  link_with : [libkms_test],
> > +  install : with_install_tests,
> > +)
> > diff --git a/tests/kmstest/meson.build b/tests/kmstest/meson.build
> > new file mode 100644
> > index 0000000..f713f26
> > --- /dev/null
> > +++ b/tests/kmstest/meson.build
> > @@ -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',
> > +  files('main.c'),
> > +  c_args : warn_c_args,
> > +  include_directories : [inc_root, inc_tests, include_directories('../../libkms'), inc_drm],
> > +  link_with : [libutil, libkms, libdrm],
> > +  install : with_install_tests,
> > +)
> > diff --git a/tests/meson.build b/tests/meson.build
> > new file mode 100644
> > index 0000000..960ff7b
> > --- /dev/null
> > +++ b/tests/meson.build
> > @@ -0,0 +1,85 @@
> > +# 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.
> > +
> > +inc_tests = include_directories('.')
> > +
> > +subdir('util')
> > +subdir('kms')
> > +subdir('modeprint')
> > +subdir('proptest')
> > +subdir('vbltest')
> > +if with_libkms
> > +  subdir('kmstest')
> > +endif
> > +if with_radeon
> > +  subdir('radeon')
> > +endif
> > +if with_amdgpu and dep_cunit.found()
> 
> I feel like the dep_cunit.found() condition belongs inside
> tests/amdgpu/meson.build, around the relevant test.

I guess. There's only one test in amdgpu anyway, but I'll change it.

> 
> > +  subdir('amdgpu')
> > +endif
> > +if with_exynos
> > +  subdir('exynos')
> > +endif
> > +if with_tegra
> > +  subdir('tegra')
> > +endif
> > +if with_etnaviv
> > +  subdir('etnaviv')
> > +endif
> > +if with_nouveau
> > +  subdir('nouveau')
> > +endif
> > +
> > +drmsl = executable(
> > +  'drmsl',
> > +  files('drmsl.c'),
> > +  include_directories : [inc_root, inc_drm],
> > +  link_with : libdrm,
> > +  c_args : warn_c_args,
> > +)
> > +
> > +hash = executable(
> > +  'hash',
> > +  files('hash.c'),
> > +  include_directories : [inc_root, inc_drm],
> > +  link_with : libdrm,
> > +  c_args : warn_c_args,
> > +)
> > +
> > +random = executable(
> > +  'random',
> > +  files('random.c'),
> > +  include_directories : [inc_root, inc_drm],
> > +  link_with : libdrm,
> > +  c_args : warn_c_args,
> > +)
> > +
> > +drmdevice = executable(
> > +  'drmdevice',
> > +  files('drmdevice.c'),
> > +  include_directories : [inc_root, inc_drm],
> > +  link_with : libdrm,
> > +  c_args : warn_c_args,
> > +)
> > +
> > +test('random', random, timeout : 240)
> > +test('hash', hash)
> > +test('drmsl', drmsl)
> > +test('drmdevice', drmdevice)
> > diff --git a/tests/modeprint/meson.build b/tests/modeprint/meson.build
> > new file mode 100644
> > index 0000000..5f0eb24
> > --- /dev/null
> > +++ b/tests/modeprint/meson.build
> > @@ -0,0 +1,29 @@
> > +# 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.
> > +
> > +modeprint = executable(
> > +  'modeprint',
> > +  files('modeprint.c'),
> > +  c_args : warn_c_args,
> > +  include_directories : [inc_root, inc_tests, inc_drm],
> > +  link_with : libdrm,
> > +  dependencies : dep_threads,
> > +  install : with_install_tests,
> > +)
> > diff --git a/tests/nouveau/meson.build b/tests/nouveau/meson.build
> > new file mode 100644
> > index 0000000..f5d73c1
> > --- /dev/null
> > +++ b/tests/nouveau/meson.build
> > @@ -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.
> > +
> > +threaded = executable(
> > +  'threaded',
> > +  files('threaded.c'),
> > +  dependencies : [dep_dl, dep_threads],
> > +  include_directories : [inc_root, inc_drm, include_directories('../../nouveau')],
> > +  link_with : [libdrm, libdrm_nouveau],
> > +  c_args : warn_c_args,
> > +)
> > +
> > +test('threaded', threaded)
> > diff --git a/tests/proptest/meson.build b/tests/proptest/meson.build
> > new file mode 100644
> > index 0000000..dcd724f
> > --- /dev/null
> > +++ b/tests/proptest/meson.build
> > @@ -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.
> > +
> > +proptest_files = files('proptest.c')
> > +
> > +proptest = executable(
> > +  'proptest',
> > +  files('proptest.c'),
> > +  c_args : warn_c_args,
> > +  include_directories : [inc_root, inc_tests, inc_drm],
> > +  link_with : [libdrm, libutil],
> > +  install : with_install_tests,
> > +)
> > diff --git a/tests/radeon/meson.build b/tests/radeon/meson.build
> > new file mode 100644
> > index 0000000..54db231
> > --- /dev/null
> > +++ b/tests/radeon/meson.build
> > @@ -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',
> > +  files('rbo.c', 'rbo.h', 'radeon_ttm.c'),
> > +  include_directories : [inc_root, inc_drm],
> > +  link_with : libdrm,
> > +  c_args : warn_c_args,
> > +)
> > diff --git a/tests/tegra/meson.build b/tests/tegra/meson.build
> > new file mode 100644
> > index 0000000..9c74ac4
> > --- /dev/null
> > +++ b/tests/tegra/meson.build
> > @@ -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.
> > +
> > +openclose = executable(
> > +  'openclose',
> > +  files('openclose.c'),
> > +  include_directories : [inc_root, inc_drm, include_directories('../../tegra')],
> > +  c_args : warn_c_args,
> > +  link_with : [libdrm, libdrm_tegra],
> > +)
> > diff --git a/tests/util/meson.build b/tests/util/meson.build
> > new file mode 100644
> > index 0000000..a0e1d3c
> > --- /dev/null
> > +++ b/tests/util/meson.build
> > @@ -0,0 +1,37 @@
> > +# 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.
> > +
> > +util_files = files(
> > +  'common.h',
> > +  'format.c',
> > +  'format.h',
> > +  'kms.c',
> > +  'kms.h',
> > +  'pattern.c',
> > +  'pattern.h',
> > +)
> > +
> > +libutil = static_library(
> > +  'util',
> > +  [util_files, config_file],
> > +  include_directories : [inc_root, inc_drm],
> > +  link_with : libdrm,
> > +  dependencies : dep_cairo
> > +)
> > diff --git a/tests/vbltest/meson.build b/tests/vbltest/meson.build
> > new file mode 100644
> > index 0000000..4fb1ad3
> > --- /dev/null
> > +++ b/tests/vbltest/meson.build
> > @@ -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.
> > +
> > +vbltest = executable(
> > +  'vbltest',
> > +  files('vbltest.c'),
> > +  c_args : warn_c_args,
> > +  include_directories : [inc_root, inc_tests, inc_drm],
> > +  link_with : [libdrm, libutil],
> > +  install : with_install_tests,
> > +)
> > diff --git a/vc4/meson.build b/vc4/meson.build
> > new file mode 100644
> > index 0000000..0136987
> > --- /dev/null
> > +++ b/vc4/meson.build
> > @@ -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',
> > +  version : meson.project_version(),
> > +  requires_private : 'libdrm',
> > +  description : 'Userspace interface to vc4 kernel DRM services',
> > +)
> > -- 
> > git-series 0.9.1
> 
> I think everything else looks good; thanks for the effort!

Attachment: signature.asc
Description: signature

_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel

[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux