mbox series

[v7,0/5] Switch build system to meson

Message ID 20220909134412.21934-1-laurent.pinchart@ideasonboard.com
Headers show
Series Switch build system to meson | expand

Message

Laurent Pinchart Sept. 9, 2022, 1:44 p.m. UTC
Hello everybody,

This series is the latest (and greatest) attempt to switch v4l-utils
from autotools to meson.

Compared to v6, the first noticeable change is that fixups have been
squashed into their corresponding commit. Detailed changelogs are now
included in individual patches.

The second big change is that the last patch from v6 ("Makefile.am:
Distribute meson related files") got replaced by 5/5 which drops
autotools support, completing the switch from autotools to meson.

A branch that includes this series can be found at

        git://linuxtv.org/pinchartl/v4l-utils.git meson

Ariel D'Alessandro (4):
  Move README to markdown syntax
  Add support for meson building
  Copy Doxygen configuration file to doc/
  meson: Add support for doxygen documentation

Laurent Pinchart (1):
  Drop autoconf/automake support

 .gitignore                                    |  62 +-
 INSTALL                                       | 105 ---
 INSTALL.md                                    | 142 ++++
 Makefile.am                                   |  16 -
 README                                        | 274 -------
 README.md                                     | 275 +++++++
 aminclude.am                                  | 186 -----
 bootstrap.sh                                  |  28 -
 configure.ac                                  | 668 ------------------
 contrib/Makefile.am                           |  25 -
 contrib/cobalt-ctl/.gitignore                 |   1 -
 contrib/cobalt-ctl/Makefile.am                |   3 -
 contrib/cobalt-ctl/meson.build                |   8 +
 contrib/decode_tm6000/.gitignore              |   1 -
 contrib/decode_tm6000/Makefile.am             |   4 -
 contrib/decode_tm6000/meson.build             |  14 +
 contrib/freebsd/Makefile.am                   |   3 -
 contrib/gconv/Makefile.am                     |  17 -
 contrib/gconv/meson.build                     |  44 ++
 contrib/meson.build                           |  13 +
 contrib/rds-saa6588/.gitignore                |   1 -
 contrib/rds-saa6588/Makefile.am               |   3 -
 contrib/rds-saa6588/meson.build               |   7 +
 contrib/test/.gitignore                       |  11 -
 contrib/test/Makefile.am                      |  65 --
 contrib/test/meson.build                      | 143 ++++
 contrib/xc3028-firmware/.gitignore            |   1 -
 contrib/xc3028-firmware/Makefile.am           |   5 -
 contrib/xc3028-firmware/meson.build           |  11 +
 doxygen_libdvbv5.cfg => doc/Doxyfile.in       | 128 ++--
 doc/meson.build                               |  34 +
 lib/Makefile.am                               |  13 -
 lib/libdvbv5/Makefile.am                      | 126 ----
 lib/libdvbv5/libdvbv5.pc.in                   |  11 -
 lib/libdvbv5/meson.build                      | 159 +++++
 lib/libv4l-mplane/Makefile.am                 |   7 -
 lib/libv4l-mplane/meson.build                 |  23 +
 lib/libv4l1/Makefile.am                       |  29 -
 lib/libv4l1/libv4l1.pc.in                     |  12 -
 lib/libv4l1/meson.build                       |  62 ++
 lib/libv4l2/Makefile.am                       |  32 -
 lib/libv4l2/libv4l2.pc.in                     |  12 -
 lib/libv4l2/meson.build                       |  71 ++
 lib/libv4l2rds/Makefile.am                    |  12 -
 lib/libv4l2rds/libv4l2rds.pc.in               |  11 -
 lib/libv4l2rds/meson.build                    |  37 +
 lib/libv4lconvert/.gitignore                  |   3 -
 lib/libv4lconvert/Makefile.am                 |  36 -
 lib/libv4lconvert/libv4lconvert.pc.in         |  11 -
 lib/libv4lconvert/meson.build                 | 117 +++
 lib/meson.build                               |  11 +
 libdvbv5-po/Makevars                          |  72 --
 libdvbv5-po/meson.build                       |   3 +
 m4/ac_define_dir.m4                           |  34 -
 m4/ax_prog_doxygen.m4                         | 532 --------------
 m4/ax_pthread.m4                              | 522 --------------
 m4/mode_t.m4                                  |  26 -
 m4/visibility.m4                              |  82 ---
 meson.build                                   | 339 +++++++++
 meson_options.txt                             |  50 ++
 utils/Makefile.am                             |  36 -
 utils/cec-compliance/.gitignore               |   2 -
 utils/cec-compliance/Makefile.am              |   8 -
 utils/cec-compliance/meson.build              |  23 +
 utils/cec-ctl/.gitignore                      |   2 -
 utils/cec-ctl/Makefile.am                     |   8 -
 utils/cec-ctl/meson.build                     |  18 +
 utils/cec-follower/.gitignore                 |   2 -
 utils/cec-follower/Makefile.am                |   8 -
 utils/cec-follower/meson.build                |  19 +
 utils/cx18-ctl/.gitignore                     |   1 -
 utils/cx18-ctl/Makefile.am                    |   3 -
 utils/cx18-ctl/meson.build                    |   8 +
 utils/dvb/.gitignore                          |   9 -
 utils/dvb/Makefile.am                         |  35 -
 utils/dvb/meson.build                         |  70 ++
 utils/gen_media_bus_format_codes.sh           |   7 +
 utils/gen_media_bus_format_names.sh           |   7 +
 utils/ir-ctl/.gitignore                       |   2 -
 utils/ir-ctl/Makefile.am                      |   6 -
 utils/ir-ctl/meson.build                      |  23 +
 utils/ivtv-ctl/.gitignore                     |   1 -
 utils/ivtv-ctl/Makefile.am                    |   4 -
 utils/ivtv-ctl/meson.build                    |  13 +
 utils/keytable/.gitignore                     |   3 -
 utils/keytable/Makefile.am                    |  36 -
 utils/keytable/bpf_protocols/Makefile.am      |  24 -
 .../bpf_protocols/clang_sys_includes.sh       |   9 +
 utils/keytable/bpf_protocols/meson.build      |  31 +
 utils/keytable/meson.build                    |  81 +++
 utils/keytable/rc_keymaps/meson.build         | 150 ++++
 utils/libcecutil/.gitignore                   |   4 -
 utils/libcecutil/Makefile.am                  |  24 -
 utils/libcecutil/meson.build                  |  45 ++
 utils/libmedia_dev/Makefile.am                |   7 -
 utils/libmedia_dev/meson.build                |  14 +
 utils/libv4l2util/Makefile.am                 |   7 -
 utils/libv4l2util/meson.build                 |  16 +
 utils/media-ctl/.gitignore                    |   3 -
 utils/media-ctl/Makefile.am                   |  30 -
 utils/media-ctl/libmediactl.pc.in             |  10 -
 utils/media-ctl/libv4l2subdev.pc.in           |  11 -
 utils/media-ctl/meson.build                   |  43 ++
 utils/meson.build                             |  46 ++
 utils/qv4l2/.gitignore                        |   9 -
 utils/qv4l2/Makefile.am                       |  54 --
 utils/qv4l2/meson.build                       |  80 +++
 utils/qvidcap/.gitignore                      |   6 -
 utils/qvidcap/Makefile.am                     |  42 --
 utils/qvidcap/meson.build                     |  82 +++
 utils/rds-ctl/.gitignore                      |   2 -
 utils/rds-ctl/Makefile.am                     |   6 -
 utils/rds-ctl/meson.build                     |  17 +
 utils/v4l2-compliance/.gitignore              |   3 -
 utils/v4l2-compliance/Makefile.am             |  31 -
 utils/v4l2-compliance/meson.build             |  59 ++
 utils/v4l2-ctl/.gitignore                     |   4 -
 utils/v4l2-ctl/Makefile.am                    |  44 --
 utils/v4l2-ctl/meson.build                    |  75 ++
 utils/v4l2-dbg/.gitignore                     |   1 -
 utils/v4l2-dbg/Makefile.am                    |   6 -
 utils/v4l2-dbg/meson.build                    |  20 +
 utils/v4l2-sysfs-path/.gitignore              |   1 -
 utils/v4l2-sysfs-path/Makefile.am             |   4 -
 utils/v4l2-sysfs-path/meson.build             |  14 +
 v4l-utils-po/Makevars                         |  72 --
 v4l-utils-po/meson.build                      |   3 +
 v4l-utils.spec.in                             |   6 +-
 128 files changed, 2604 insertions(+), 3699 deletions(-)
 delete mode 100644 INSTALL
 create mode 100644 INSTALL.md
 delete mode 100644 Makefile.am
 delete mode 100644 README
 create mode 100644 README.md
 delete mode 100644 aminclude.am
 delete mode 100755 bootstrap.sh
 delete mode 100644 configure.ac
 delete mode 100644 contrib/Makefile.am
 delete mode 100644 contrib/cobalt-ctl/.gitignore
 delete mode 100644 contrib/cobalt-ctl/Makefile.am
 create mode 100644 contrib/cobalt-ctl/meson.build
 delete mode 100644 contrib/decode_tm6000/.gitignore
 delete mode 100644 contrib/decode_tm6000/Makefile.am
 create mode 100644 contrib/decode_tm6000/meson.build
 delete mode 100644 contrib/freebsd/Makefile.am
 delete mode 100644 contrib/gconv/Makefile.am
 create mode 100644 contrib/gconv/meson.build
 create mode 100644 contrib/meson.build
 delete mode 100644 contrib/rds-saa6588/.gitignore
 delete mode 100644 contrib/rds-saa6588/Makefile.am
 create mode 100644 contrib/rds-saa6588/meson.build
 delete mode 100644 contrib/test/.gitignore
 delete mode 100644 contrib/test/Makefile.am
 create mode 100644 contrib/test/meson.build
 delete mode 100644 contrib/xc3028-firmware/.gitignore
 delete mode 100644 contrib/xc3028-firmware/Makefile.am
 create mode 100644 contrib/xc3028-firmware/meson.build
 rename doxygen_libdvbv5.cfg => doc/Doxyfile.in (96%)
 create mode 100644 doc/meson.build
 delete mode 100644 lib/Makefile.am
 delete mode 100644 lib/libdvbv5/Makefile.am
 delete mode 100644 lib/libdvbv5/libdvbv5.pc.in
 create mode 100644 lib/libdvbv5/meson.build
 delete mode 100644 lib/libv4l-mplane/Makefile.am
 create mode 100644 lib/libv4l-mplane/meson.build
 delete mode 100644 lib/libv4l1/Makefile.am
 delete mode 100644 lib/libv4l1/libv4l1.pc.in
 create mode 100644 lib/libv4l1/meson.build
 delete mode 100644 lib/libv4l2/Makefile.am
 delete mode 100644 lib/libv4l2/libv4l2.pc.in
 create mode 100644 lib/libv4l2/meson.build
 delete mode 100644 lib/libv4l2rds/Makefile.am
 delete mode 100644 lib/libv4l2rds/libv4l2rds.pc.in
 create mode 100644 lib/libv4l2rds/meson.build
 delete mode 100644 lib/libv4lconvert/.gitignore
 delete mode 100644 lib/libv4lconvert/Makefile.am
 delete mode 100644 lib/libv4lconvert/libv4lconvert.pc.in
 create mode 100644 lib/libv4lconvert/meson.build
 create mode 100644 lib/meson.build
 delete mode 100644 libdvbv5-po/Makevars
 create mode 100644 libdvbv5-po/meson.build
 delete mode 100644 m4/ac_define_dir.m4
 delete mode 100644 m4/ax_prog_doxygen.m4
 delete mode 100644 m4/ax_pthread.m4
 delete mode 100644 m4/mode_t.m4
 delete mode 100644 m4/visibility.m4
 create mode 100644 meson.build
 create mode 100644 meson_options.txt
 delete mode 100644 utils/Makefile.am
 delete mode 100644 utils/cec-compliance/.gitignore
 delete mode 100644 utils/cec-compliance/Makefile.am
 create mode 100644 utils/cec-compliance/meson.build
 delete mode 100644 utils/cec-ctl/.gitignore
 delete mode 100644 utils/cec-ctl/Makefile.am
 create mode 100644 utils/cec-ctl/meson.build
 delete mode 100644 utils/cec-follower/.gitignore
 delete mode 100644 utils/cec-follower/Makefile.am
 create mode 100644 utils/cec-follower/meson.build
 delete mode 100644 utils/cx18-ctl/.gitignore
 delete mode 100644 utils/cx18-ctl/Makefile.am
 create mode 100644 utils/cx18-ctl/meson.build
 delete mode 100644 utils/dvb/.gitignore
 delete mode 100644 utils/dvb/Makefile.am
 create mode 100644 utils/dvb/meson.build
 create mode 100755 utils/gen_media_bus_format_codes.sh
 create mode 100755 utils/gen_media_bus_format_names.sh
 delete mode 100644 utils/ir-ctl/.gitignore
 delete mode 100644 utils/ir-ctl/Makefile.am
 create mode 100644 utils/ir-ctl/meson.build
 delete mode 100644 utils/ivtv-ctl/.gitignore
 delete mode 100644 utils/ivtv-ctl/Makefile.am
 create mode 100644 utils/ivtv-ctl/meson.build
 delete mode 100644 utils/keytable/.gitignore
 delete mode 100644 utils/keytable/Makefile.am
 delete mode 100644 utils/keytable/bpf_protocols/Makefile.am
 create mode 100755 utils/keytable/bpf_protocols/clang_sys_includes.sh
 create mode 100644 utils/keytable/bpf_protocols/meson.build
 create mode 100644 utils/keytable/meson.build
 create mode 100644 utils/keytable/rc_keymaps/meson.build
 delete mode 100644 utils/libcecutil/.gitignore
 delete mode 100644 utils/libcecutil/Makefile.am
 create mode 100644 utils/libcecutil/meson.build
 delete mode 100644 utils/libmedia_dev/Makefile.am
 create mode 100644 utils/libmedia_dev/meson.build
 delete mode 100644 utils/libv4l2util/Makefile.am
 create mode 100644 utils/libv4l2util/meson.build
 delete mode 100644 utils/media-ctl/.gitignore
 delete mode 100644 utils/media-ctl/Makefile.am
 delete mode 100644 utils/media-ctl/libmediactl.pc.in
 delete mode 100644 utils/media-ctl/libv4l2subdev.pc.in
 create mode 100644 utils/media-ctl/meson.build
 create mode 100644 utils/meson.build
 delete mode 100644 utils/qv4l2/.gitignore
 delete mode 100644 utils/qv4l2/Makefile.am
 create mode 100644 utils/qv4l2/meson.build
 delete mode 100644 utils/qvidcap/.gitignore
 delete mode 100644 utils/qvidcap/Makefile.am
 create mode 100644 utils/qvidcap/meson.build
 delete mode 100644 utils/rds-ctl/.gitignore
 delete mode 100644 utils/rds-ctl/Makefile.am
 create mode 100644 utils/rds-ctl/meson.build
 delete mode 100644 utils/v4l2-compliance/.gitignore
 delete mode 100644 utils/v4l2-compliance/Makefile.am
 create mode 100644 utils/v4l2-compliance/meson.build
 delete mode 100644 utils/v4l2-ctl/.gitignore
 delete mode 100644 utils/v4l2-ctl/Makefile.am
 create mode 100644 utils/v4l2-ctl/meson.build
 delete mode 100644 utils/v4l2-dbg/.gitignore
 delete mode 100644 utils/v4l2-dbg/Makefile.am
 create mode 100644 utils/v4l2-dbg/meson.build
 delete mode 100644 utils/v4l2-sysfs-path/.gitignore
 delete mode 100644 utils/v4l2-sysfs-path/Makefile.am
 create mode 100644 utils/v4l2-sysfs-path/meson.build
 delete mode 100644 v4l-utils-po/Makevars
 create mode 100644 v4l-utils-po/meson.build


base-commit: a7611b2407982d823d1561c23f4531b8cc5c9dee

Comments

Laurent Pinchart Sept. 12, 2022, 10:06 a.m. UTC | #1
Hi Rosen,

Thank you for looking into this, the review is appreciated.

On Sat, Sep 10, 2022 at 07:17:53PM -0700, Rosen Penev wrote:
> On Fri, Sep 9, 2022 at 6:44 AM Laurent Pinchart wrote:
> >
> > Hello everybody,
> >
> > This series is the latest (and greatest) attempt to switch v4l-utils
> > from autotools to meson.
> 
> I looked at the base meson.build file. Those enabled() usages look
> weird to me. The libudev one seems like a refactoring oversight.

Indeed. I'll fix that.

> dep_gl = dependency('gl', required : get_option('qvidcap').enabled()
> or get_option('qv4l2').enabled())
> 
> can be rewritten as
> dep gl = dependency('gl, required: get_option('qvidcap'))
> if not dep_gl.found()
>   dep gl = dependency('gl, required: get_option('qv4l2'))
> endif
> 
> That'll enable the actual feature option to work properly.

Will fix too. It would be nice if meson had a way to easily combine two
features, something along the lines of

dep gl = dependency('gl, required: get_option('qvidcap') || get_option('qv4l2'))

> have_visibility should use cc.has_function_attribute(' visibility:hidden')

I didn't know about that. Will fix.

> The libiconv check should also be a feature check:
> 
> if meson.version().version_compare('>= 0.60')
>   iconv_dep = dependency('iconv', required: get_option('iconv'))
> else
>   ...
> endif

I'll do this too.

> > Compared to v6, the first noticeable change is that fixups have been
> > squashed into their corresponding commit. Detailed changelogs are now
> > included in individual patches.
> >
> > The second big change is that the last patch from v6 ("Makefile.am:
> > Distribute meson related files") got replaced by 5/5 which drops
> > autotools support, completing the switch from autotools to meson.
> >
> > A branch that includes this series can be found at
> >
> >         git://linuxtv.org/pinchartl/v4l-utils.git meson
> >
> > Ariel D'Alessandro (4):
> >   Move README to markdown syntax
> >   Add support for meson building
> >   Copy Doxygen configuration file to doc/
> >   meson: Add support for doxygen documentation
> >
> > Laurent Pinchart (1):
> >   Drop autoconf/automake support
> >
> >  .gitignore                                    |  62 +-
> >  INSTALL                                       | 105 ---
> >  INSTALL.md                                    | 142 ++++
> >  Makefile.am                                   |  16 -
> >  README                                        | 274 -------
> >  README.md                                     | 275 +++++++
> >  aminclude.am                                  | 186 -----
> >  bootstrap.sh                                  |  28 -
> >  configure.ac                                  | 668 ------------------
> >  contrib/Makefile.am                           |  25 -
> >  contrib/cobalt-ctl/.gitignore                 |   1 -
> >  contrib/cobalt-ctl/Makefile.am                |   3 -
> >  contrib/cobalt-ctl/meson.build                |   8 +
> >  contrib/decode_tm6000/.gitignore              |   1 -
> >  contrib/decode_tm6000/Makefile.am             |   4 -
> >  contrib/decode_tm6000/meson.build             |  14 +
> >  contrib/freebsd/Makefile.am                   |   3 -
> >  contrib/gconv/Makefile.am                     |  17 -
> >  contrib/gconv/meson.build                     |  44 ++
> >  contrib/meson.build                           |  13 +
> >  contrib/rds-saa6588/.gitignore                |   1 -
> >  contrib/rds-saa6588/Makefile.am               |   3 -
> >  contrib/rds-saa6588/meson.build               |   7 +
> >  contrib/test/.gitignore                       |  11 -
> >  contrib/test/Makefile.am                      |  65 --
> >  contrib/test/meson.build                      | 143 ++++
> >  contrib/xc3028-firmware/.gitignore            |   1 -
> >  contrib/xc3028-firmware/Makefile.am           |   5 -
> >  contrib/xc3028-firmware/meson.build           |  11 +
> >  doxygen_libdvbv5.cfg => doc/Doxyfile.in       | 128 ++--
> >  doc/meson.build                               |  34 +
> >  lib/Makefile.am                               |  13 -
> >  lib/libdvbv5/Makefile.am                      | 126 ----
> >  lib/libdvbv5/libdvbv5.pc.in                   |  11 -
> >  lib/libdvbv5/meson.build                      | 159 +++++
> >  lib/libv4l-mplane/Makefile.am                 |   7 -
> >  lib/libv4l-mplane/meson.build                 |  23 +
> >  lib/libv4l1/Makefile.am                       |  29 -
> >  lib/libv4l1/libv4l1.pc.in                     |  12 -
> >  lib/libv4l1/meson.build                       |  62 ++
> >  lib/libv4l2/Makefile.am                       |  32 -
> >  lib/libv4l2/libv4l2.pc.in                     |  12 -
> >  lib/libv4l2/meson.build                       |  71 ++
> >  lib/libv4l2rds/Makefile.am                    |  12 -
> >  lib/libv4l2rds/libv4l2rds.pc.in               |  11 -
> >  lib/libv4l2rds/meson.build                    |  37 +
> >  lib/libv4lconvert/.gitignore                  |   3 -
> >  lib/libv4lconvert/Makefile.am                 |  36 -
> >  lib/libv4lconvert/libv4lconvert.pc.in         |  11 -
> >  lib/libv4lconvert/meson.build                 | 117 +++
> >  lib/meson.build                               |  11 +
> >  libdvbv5-po/Makevars                          |  72 --
> >  libdvbv5-po/meson.build                       |   3 +
> >  m4/ac_define_dir.m4                           |  34 -
> >  m4/ax_prog_doxygen.m4                         | 532 --------------
> >  m4/ax_pthread.m4                              | 522 --------------
> >  m4/mode_t.m4                                  |  26 -
> >  m4/visibility.m4                              |  82 ---
> >  meson.build                                   | 339 +++++++++
> >  meson_options.txt                             |  50 ++
> >  utils/Makefile.am                             |  36 -
> >  utils/cec-compliance/.gitignore               |   2 -
> >  utils/cec-compliance/Makefile.am              |   8 -
> >  utils/cec-compliance/meson.build              |  23 +
> >  utils/cec-ctl/.gitignore                      |   2 -
> >  utils/cec-ctl/Makefile.am                     |   8 -
> >  utils/cec-ctl/meson.build                     |  18 +
> >  utils/cec-follower/.gitignore                 |   2 -
> >  utils/cec-follower/Makefile.am                |   8 -
> >  utils/cec-follower/meson.build                |  19 +
> >  utils/cx18-ctl/.gitignore                     |   1 -
> >  utils/cx18-ctl/Makefile.am                    |   3 -
> >  utils/cx18-ctl/meson.build                    |   8 +
> >  utils/dvb/.gitignore                          |   9 -
> >  utils/dvb/Makefile.am                         |  35 -
> >  utils/dvb/meson.build                         |  70 ++
> >  utils/gen_media_bus_format_codes.sh           |   7 +
> >  utils/gen_media_bus_format_names.sh           |   7 +
> >  utils/ir-ctl/.gitignore                       |   2 -
> >  utils/ir-ctl/Makefile.am                      |   6 -
> >  utils/ir-ctl/meson.build                      |  23 +
> >  utils/ivtv-ctl/.gitignore                     |   1 -
> >  utils/ivtv-ctl/Makefile.am                    |   4 -
> >  utils/ivtv-ctl/meson.build                    |  13 +
> >  utils/keytable/.gitignore                     |   3 -
> >  utils/keytable/Makefile.am                    |  36 -
> >  utils/keytable/bpf_protocols/Makefile.am      |  24 -
> >  .../bpf_protocols/clang_sys_includes.sh       |   9 +
> >  utils/keytable/bpf_protocols/meson.build      |  31 +
> >  utils/keytable/meson.build                    |  81 +++
> >  utils/keytable/rc_keymaps/meson.build         | 150 ++++
> >  utils/libcecutil/.gitignore                   |   4 -
> >  utils/libcecutil/Makefile.am                  |  24 -
> >  utils/libcecutil/meson.build                  |  45 ++
> >  utils/libmedia_dev/Makefile.am                |   7 -
> >  utils/libmedia_dev/meson.build                |  14 +
> >  utils/libv4l2util/Makefile.am                 |   7 -
> >  utils/libv4l2util/meson.build                 |  16 +
> >  utils/media-ctl/.gitignore                    |   3 -
> >  utils/media-ctl/Makefile.am                   |  30 -
> >  utils/media-ctl/libmediactl.pc.in             |  10 -
> >  utils/media-ctl/libv4l2subdev.pc.in           |  11 -
> >  utils/media-ctl/meson.build                   |  43 ++
> >  utils/meson.build                             |  46 ++
> >  utils/qv4l2/.gitignore                        |   9 -
> >  utils/qv4l2/Makefile.am                       |  54 --
> >  utils/qv4l2/meson.build                       |  80 +++
> >  utils/qvidcap/.gitignore                      |   6 -
> >  utils/qvidcap/Makefile.am                     |  42 --
> >  utils/qvidcap/meson.build                     |  82 +++
> >  utils/rds-ctl/.gitignore                      |   2 -
> >  utils/rds-ctl/Makefile.am                     |   6 -
> >  utils/rds-ctl/meson.build                     |  17 +
> >  utils/v4l2-compliance/.gitignore              |   3 -
> >  utils/v4l2-compliance/Makefile.am             |  31 -
> >  utils/v4l2-compliance/meson.build             |  59 ++
> >  utils/v4l2-ctl/.gitignore                     |   4 -
> >  utils/v4l2-ctl/Makefile.am                    |  44 --
> >  utils/v4l2-ctl/meson.build                    |  75 ++
> >  utils/v4l2-dbg/.gitignore                     |   1 -
> >  utils/v4l2-dbg/Makefile.am                    |   6 -
> >  utils/v4l2-dbg/meson.build                    |  20 +
> >  utils/v4l2-sysfs-path/.gitignore              |   1 -
> >  utils/v4l2-sysfs-path/Makefile.am             |   4 -
> >  utils/v4l2-sysfs-path/meson.build             |  14 +
> >  v4l-utils-po/Makevars                         |  72 --
> >  v4l-utils-po/meson.build                      |   3 +
> >  v4l-utils.spec.in                             |   6 +-
> >  128 files changed, 2604 insertions(+), 3699 deletions(-)
> >  delete mode 100644 INSTALL
> >  create mode 100644 INSTALL.md
> >  delete mode 100644 Makefile.am
> >  delete mode 100644 README
> >  create mode 100644 README.md
> >  delete mode 100644 aminclude.am
> >  delete mode 100755 bootstrap.sh
> >  delete mode 100644 configure.ac
> >  delete mode 100644 contrib/Makefile.am
> >  delete mode 100644 contrib/cobalt-ctl/.gitignore
> >  delete mode 100644 contrib/cobalt-ctl/Makefile.am
> >  create mode 100644 contrib/cobalt-ctl/meson.build
> >  delete mode 100644 contrib/decode_tm6000/.gitignore
> >  delete mode 100644 contrib/decode_tm6000/Makefile.am
> >  create mode 100644 contrib/decode_tm6000/meson.build
> >  delete mode 100644 contrib/freebsd/Makefile.am
> >  delete mode 100644 contrib/gconv/Makefile.am
> >  create mode 100644 contrib/gconv/meson.build
> >  create mode 100644 contrib/meson.build
> >  delete mode 100644 contrib/rds-saa6588/.gitignore
> >  delete mode 100644 contrib/rds-saa6588/Makefile.am
> >  create mode 100644 contrib/rds-saa6588/meson.build
> >  delete mode 100644 contrib/test/.gitignore
> >  delete mode 100644 contrib/test/Makefile.am
> >  create mode 100644 contrib/test/meson.build
> >  delete mode 100644 contrib/xc3028-firmware/.gitignore
> >  delete mode 100644 contrib/xc3028-firmware/Makefile.am
> >  create mode 100644 contrib/xc3028-firmware/meson.build
> >  rename doxygen_libdvbv5.cfg => doc/Doxyfile.in (96%)
> >  create mode 100644 doc/meson.build
> >  delete mode 100644 lib/Makefile.am
> >  delete mode 100644 lib/libdvbv5/Makefile.am
> >  delete mode 100644 lib/libdvbv5/libdvbv5.pc.in
> >  create mode 100644 lib/libdvbv5/meson.build
> >  delete mode 100644 lib/libv4l-mplane/Makefile.am
> >  create mode 100644 lib/libv4l-mplane/meson.build
> >  delete mode 100644 lib/libv4l1/Makefile.am
> >  delete mode 100644 lib/libv4l1/libv4l1.pc.in
> >  create mode 100644 lib/libv4l1/meson.build
> >  delete mode 100644 lib/libv4l2/Makefile.am
> >  delete mode 100644 lib/libv4l2/libv4l2.pc.in
> >  create mode 100644 lib/libv4l2/meson.build
> >  delete mode 100644 lib/libv4l2rds/Makefile.am
> >  delete mode 100644 lib/libv4l2rds/libv4l2rds.pc.in
> >  create mode 100644 lib/libv4l2rds/meson.build
> >  delete mode 100644 lib/libv4lconvert/.gitignore
> >  delete mode 100644 lib/libv4lconvert/Makefile.am
> >  delete mode 100644 lib/libv4lconvert/libv4lconvert.pc.in
> >  create mode 100644 lib/libv4lconvert/meson.build
> >  create mode 100644 lib/meson.build
> >  delete mode 100644 libdvbv5-po/Makevars
> >  create mode 100644 libdvbv5-po/meson.build
> >  delete mode 100644 m4/ac_define_dir.m4
> >  delete mode 100644 m4/ax_prog_doxygen.m4
> >  delete mode 100644 m4/ax_pthread.m4
> >  delete mode 100644 m4/mode_t.m4
> >  delete mode 100644 m4/visibility.m4
> >  create mode 100644 meson.build
> >  create mode 100644 meson_options.txt
> >  delete mode 100644 utils/Makefile.am
> >  delete mode 100644 utils/cec-compliance/.gitignore
> >  delete mode 100644 utils/cec-compliance/Makefile.am
> >  create mode 100644 utils/cec-compliance/meson.build
> >  delete mode 100644 utils/cec-ctl/.gitignore
> >  delete mode 100644 utils/cec-ctl/Makefile.am
> >  create mode 100644 utils/cec-ctl/meson.build
> >  delete mode 100644 utils/cec-follower/.gitignore
> >  delete mode 100644 utils/cec-follower/Makefile.am
> >  create mode 100644 utils/cec-follower/meson.build
> >  delete mode 100644 utils/cx18-ctl/.gitignore
> >  delete mode 100644 utils/cx18-ctl/Makefile.am
> >  create mode 100644 utils/cx18-ctl/meson.build
> >  delete mode 100644 utils/dvb/.gitignore
> >  delete mode 100644 utils/dvb/Makefile.am
> >  create mode 100644 utils/dvb/meson.build
> >  create mode 100755 utils/gen_media_bus_format_codes.sh
> >  create mode 100755 utils/gen_media_bus_format_names.sh
> >  delete mode 100644 utils/ir-ctl/.gitignore
> >  delete mode 100644 utils/ir-ctl/Makefile.am
> >  create mode 100644 utils/ir-ctl/meson.build
> >  delete mode 100644 utils/ivtv-ctl/.gitignore
> >  delete mode 100644 utils/ivtv-ctl/Makefile.am
> >  create mode 100644 utils/ivtv-ctl/meson.build
> >  delete mode 100644 utils/keytable/.gitignore
> >  delete mode 100644 utils/keytable/Makefile.am
> >  delete mode 100644 utils/keytable/bpf_protocols/Makefile.am
> >  create mode 100755 utils/keytable/bpf_protocols/clang_sys_includes.sh
> >  create mode 100644 utils/keytable/bpf_protocols/meson.build
> >  create mode 100644 utils/keytable/meson.build
> >  create mode 100644 utils/keytable/rc_keymaps/meson.build
> >  delete mode 100644 utils/libcecutil/.gitignore
> >  delete mode 100644 utils/libcecutil/Makefile.am
> >  create mode 100644 utils/libcecutil/meson.build
> >  delete mode 100644 utils/libmedia_dev/Makefile.am
> >  create mode 100644 utils/libmedia_dev/meson.build
> >  delete mode 100644 utils/libv4l2util/Makefile.am
> >  create mode 100644 utils/libv4l2util/meson.build
> >  delete mode 100644 utils/media-ctl/.gitignore
> >  delete mode 100644 utils/media-ctl/Makefile.am
> >  delete mode 100644 utils/media-ctl/libmediactl.pc.in
> >  delete mode 100644 utils/media-ctl/libv4l2subdev.pc.in
> >  create mode 100644 utils/media-ctl/meson.build
> >  create mode 100644 utils/meson.build
> >  delete mode 100644 utils/qv4l2/.gitignore
> >  delete mode 100644 utils/qv4l2/Makefile.am
> >  create mode 100644 utils/qv4l2/meson.build
> >  delete mode 100644 utils/qvidcap/.gitignore
> >  delete mode 100644 utils/qvidcap/Makefile.am
> >  create mode 100644 utils/qvidcap/meson.build
> >  delete mode 100644 utils/rds-ctl/.gitignore
> >  delete mode 100644 utils/rds-ctl/Makefile.am
> >  create mode 100644 utils/rds-ctl/meson.build
> >  delete mode 100644 utils/v4l2-compliance/.gitignore
> >  delete mode 100644 utils/v4l2-compliance/Makefile.am
> >  create mode 100644 utils/v4l2-compliance/meson.build
> >  delete mode 100644 utils/v4l2-ctl/.gitignore
> >  delete mode 100644 utils/v4l2-ctl/Makefile.am
> >  create mode 100644 utils/v4l2-ctl/meson.build
> >  delete mode 100644 utils/v4l2-dbg/.gitignore
> >  delete mode 100644 utils/v4l2-dbg/Makefile.am
> >  create mode 100644 utils/v4l2-dbg/meson.build
> >  delete mode 100644 utils/v4l2-sysfs-path/.gitignore
> >  delete mode 100644 utils/v4l2-sysfs-path/Makefile.am
> >  create mode 100644 utils/v4l2-sysfs-path/meson.build
> >  delete mode 100644 v4l-utils-po/Makevars
> >  create mode 100644 v4l-utils-po/meson.build
> >
> >
> > base-commit: a7611b2407982d823d1561c23f4531b8cc5c9dee
Gregor Jasny Sept. 12, 2022, 2:41 p.m. UTC | #2
Hello Laurent and all the other helping hands,

On 9/9/22 3:44 PM, Laurent Pinchart wrote:
> This series is the latest (and greatest) attempt to switch v4l-utils
> from autotools to meson.
> 
> Compared to v6, the first noticeable change is that fixups have been
> squashed into their corresponding commit. Detailed changelogs are now
> included in individual patches.

Tested-by: Gregor Jasny <gjasny@googlemail.com>

v7 is still working as expected with my Debian and Ubuntu packaging scripts.

What would you think would be a good time to release these changes? 
Should I do a release shortly after the this change has landed?

Thanks,
Gregor
Mauro Carvalho Chehab Sept. 13, 2022, 7:14 a.m. UTC | #3
Em Tue, 13 Sep 2022 09:04:27 +0200
Mauro Carvalho Chehab <mchehab@kernel.org> escreveu:

> Em Tue, 13 Sep 2022 07:54:08 +0100
> Hans Verkuil <hverkuil@xs4all.nl> escreveu:
> 
> > Hi Laurent,
> > 
> > On 9/12/22 23:29, Laurent Pinchart wrote:  
> > > Hi Gregor,
> > > 
> > > On Mon, Sep 12, 2022 at 04:41:33PM +0200, Gregor Jasny wrote:    
> > >> Hello Laurent and all the other helping hands,
> > >>
> > >> On 9/9/22 3:44 PM, Laurent Pinchart wrote:    
> > >>> This series is the latest (and greatest) attempt to switch v4l-utils
> > >>> from autotools to meson.
> > >>>
> > >>> Compared to v6, the first noticeable change is that fixups have been
> > >>> squashed into their corresponding commit. Detailed changelogs are now
> > >>> included in individual patches.    
> > >>
> > >> Tested-by: Gregor Jasny <gjasny@googlemail.com>
> > >>
> > >> v7 is still working as expected with my Debian and Ubuntu packaging scripts.    
> > > 
> > > Thanks for testing. I'll post a v8 with the improvements suggested in
> > > the review comments. I will also include updates to the
> > > v4l-utils.spec.in file, and would appreciate help testing it.
> > >     
> > >> What would you think would be a good time to release these changes?
> > >> Should I do a release shortly after the this change has landed?    
> > > 
> > > I think that would be a good idea. Once v8 is out, if there are no more
> > > issues, I think it could be merged.
> > >     
> > 
> > Before you do that, I would like to do a few more tests next week.  
> 
> I'd like to to it too, once the summary is there. I want to compare
> autotools x meson with regards to enable/disable each build option,
> and check the results.

Ah, forgot to mention, but, before disabling autotools, I need
the recipe for using Coverity with meson, as otherwise we'll have
a regression on CI.

The final patch dropping support for auto-tools can only be
applied upstream after changing the CI to build via meson.

So, the steps should be:

1. Version 8 is submitted;
2. Once it pass on tests, merge without dropping auto-tools support;
3. change CI to build via meson and test it;
4. release a new version.

I'm in doubt if we should drop auto-tools before (4) or if we should
keep support for it for a while. 

Thanks,
Mauro
Hans Verkuil Sept. 13, 2022, 8:52 a.m. UTC | #4
Hi Laurent,

On 9/13/22 08:15, Hans Verkuil wrote:
> Hi Laurent,
> 
> On 9/12/22 23:29, Laurent Pinchart wrote:
>> Hi Gregor,
>>
>> On Mon, Sep 12, 2022 at 04:41:33PM +0200, Gregor Jasny wrote:
>>> Hello Laurent and all the other helping hands,
>>>
>>> On 9/9/22 3:44 PM, Laurent Pinchart wrote:
>>>> This series is the latest (and greatest) attempt to switch v4l-utils
>>>> from autotools to meson.
>>>>
>>>> Compared to v6, the first noticeable change is that fixups have been
>>>> squashed into their corresponding commit. Detailed changelogs are now
>>>> included in individual patches.
>>>
>>> Tested-by: Gregor Jasny <gjasny@googlemail.com>
>>>
>>> v7 is still working as expected with my Debian and Ubuntu packaging 
>>> scripts.
>>
>> Thanks for testing. I'll post a v8 with the improvements suggested in
>> the review comments. I will also include updates to the
>> v4l-utils.spec.in file, and would appreciate help testing it.
>>
>>> What would you think would be a good time to release these changes?
>>> Should I do a release shortly after the this change has landed?
>>
>> I think that would be a good idea. Once v8 is out, if there are no more
>> issues, I think it could be merged.
>>
> 
> Two questions: for meson, what is the equivalent to 'make distclean'? 
> Just rm -rf build?
> 
> And another: if I enable building for v4l2-ctl-32 and 
> v4l2-compliance-32, then those targets aren't build AFAICS.
> 
> It's needed for testing 32-bit compat code.

I've tested a bunch of other config options that relate to the utils I 
maintain, and those work fine. So it appears to be just these 32 bit 
config options that fail.

Regards,

	Hans

> 
> Regards,
> 
>      Hans
Hans Verkuil Sept. 23, 2022, 10:54 a.m. UTC | #5
Hi Laurent,

On 09/09/2022 15:44, Laurent Pinchart wrote:
> Hello everybody,
> 
> This series is the latest (and greatest) attempt to switch v4l-utils
> from autotools to meson.
> 
> Compared to v6, the first noticeable change is that fixups have been
> squashed into their corresponding commit. Detailed changelogs are now
> included in individual patches.
> 
> The second big change is that the last patch from v6 ("Makefile.am:
> Distribute meson related files") got replaced by 5/5 which drops
> autotools support, completing the switch from autotools to meson.
> 
> A branch that includes this series can be found at
> 
>         git://linuxtv.org/pinchartl/v4l-utils.git meson

I'm trying to use this new build system in our internal cross compilation
environment, and I am running into problems.

What we did with the autotools setup is to configure everything, but just
build a select set of utilities from the utils directory, without needing to
link to anything in lib. So basically: cd utils/v4l2-ctl; make; make install

Trying to cross compile in lib fails with strange errors, but I don't really
want to build anything in lib anyway, I don't need it at all.

Is there a way to tell ninja to build just one utility? Or are you forced to
build everything?

Regards,

	Hans