[PATCH i-g-t 00/22] RFC: meson build system support

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

 



Hi all,

Ok, this time around a proper patch series with cover letter and a pile of
fixes (bunch of them thanks to Eric) thrown on top.

The motivation for this has 2 primary reasons:

- I want a build system that's fast, especially for hacking on the
  library. Currently with over 300 binaries the relinking step every time
  you change the library is extremely painful.

- I want a build system that I can hack on. After years of automake, I
  still don't get it. After a few days of meson I have at least the
  illusion I understand stuff. And that's with an obviously still fairly
  fresh tool with the occasional sharp corner (lesson learned: if it
  complains about the meson files, it's a missing comman nearby).

- Finally there's the question of whether this will die like previous
  attempts at a better build toolchain, or whether the meson/ninja combo
  will win. There's a lot of very enthusastic initial conversion in
  various X.org projects, and the people I've chatted are extremely
  positive on this. I think meson/ninja could very well be the git of the
  build: Painful to use in the first years, but has the fundamental rights
  and will win in the end.

Assuming we can get some consensus around this I'd like to merge it and
polish the meson support in-tree, it's kinda growing into a bigger series
already. And of course we need to keep autohell working for probably a
fairly long time, at least for the tools that distro install.

Comments and testing very much welcom.

Cheers, Daniel

Daniel Vetter (19):
  build: Define _GNU_SOURCE in Makefile.am
  build: Nuke #ifdef HAVE_CONFIG_H cargo-cult
  build: use HAVE_LIBGEN_H consistently
  build: remove _GNU_SOURCE from source files
  tests/gem_spin_batch: Fix warning
  lib: prefix frame_dump_path
  lib: clean up header includes
  tests/igt_command_line.sh: Allow testing individual tests
  lib/uwildmat: Use include paths
  demos: remove
  assembler/test: Prep work for meson
  meson: basic build system support
  lib/ioctl_wrappers: make the valgrind wrapper always emit a
    statement:w
  tests/kms_plane: Appease gcc -Wempty-body
  meson: detect cc flags
  meson: add manpage support
  meson: igt_frame also needs pixman
  meson: Minimal README update
  meson: Bump required version to 0.40

Eric Anholt (3):
  meson: Add some compiler flags to reduce warnings.
  meson: Don't build the igt audio test without gsl available.
  meson: Use static libs to handle IGT_LOG_DOMAIN.

 .gitignore                       |   1 +
 Makefile.am                      |   2 +-
 README                           |  16 +
 assembler/meson.build            |  73 +++
 assembler/test/run-test.sh       |  16 +-
 benchmarks/Makefile.am           |   2 +-
 benchmarks/gem_exec_tracer.c     |   2 -
 benchmarks/gem_latency.c         |   1 -
 benchmarks/gem_syslatency.c      |   2 -
 benchmarks/meson.build           |  36 ++
 demos/.gitignore                 |   1 -
 demos/Android.mk                 |  32 --
 demos/Makefile.am                |  12 -
 demos/Makefile.sources           |   7 -
 demos/intel_sprite_on.c          | 960 ---------------------------------------
 lib/Makefile.am                  |   1 +
 lib/drmtest.c                    |   4 +-
 lib/dummy.c                      |   0
 lib/igt_alsa.c                   |   3 +-
 lib/igt_alsa.h                   |   3 -
 lib/igt_audio.c                  |   3 +-
 lib/igt_audio.h                  |   3 -
 lib/igt_aux.c                    |   4 +-
 lib/igt_chamelium.c              |   6 +-
 lib/igt_chamelium.h              |   8 +-
 lib/igt_core.c                   |  16 +-
 lib/igt_core.h                   |   2 +-
 lib/igt_dummyload.c              |  11 +-
 lib/igt_fb.c                     |   1 -
 lib/igt_frame.c                  |  13 +-
 lib/igt_frame.h                  |   3 -
 lib/igt_gvt.c                    |  10 +-
 lib/igt_kmod.c                   |   6 +-
 lib/igt_sysfs.h                  |   1 +
 lib/igt_vgem.c                   |  10 +-
 lib/igt_vgem.h                   |   1 +
 lib/igt_x86.c                    |   2 -
 lib/intel_os.c                   |   2 -
 lib/ioctl_wrappers.c             |   6 +-
 lib/meson.build                  | 180 ++++++++
 lib/sw_sync.c                    |   4 +-
 lib/tests/Makefile.am            |   1 +
 lib/tests/igt_exit_handler.c     |   1 -
 lib/tests/meson.build            |  34 ++
 lib/uwildmat/uwildmat.c          |   2 +-
 lib/version.h.in                 |   1 +
 man/defs.rst.in                  |   5 +
 man/meson.build                  |  45 ++
 man/rst2man.sh                   |  16 +
 meson.build                      | 124 +++++
 overlay/meson.build              |  59 +++
 overlay/overlay.h                |   2 -
 overlay/x11/position.c           |   2 -
 tests/Makefile.am                |   1 +
 tests/amdgpu/amd_basic.c         |   2 -
 tests/core_get_client_auth.c     |   1 -
 tests/core_setmaster_vs_auth.c   |   1 -
 tests/debugfs_test.c             |   2 -
 tests/drm_import_export.c        |   1 -
 tests/drv_missed_irq.c           |   1 -
 tests/gem_fence_thrash.c         |   2 -
 tests/gem_fence_upload.c         |   2 -
 tests/gem_fenced_exec_thrash.c   |   2 -
 tests/gem_flink_race.c           |   1 -
 tests/gem_mmap_gtt.c             |   1 -
 tests/gem_mmap_wc.c              |   1 -
 tests/gem_persistent_relocs.c    |   1 -
 tests/gem_reloc_vs_gpu.c         |   1 -
 tests/gem_render_linear_blits.c  |   2 -
 tests/gem_reset_stats.c          |   1 -
 tests/gem_spin_batch.c           |   2 +-
 tests/gem_streaming_writes.c     |   1 -
 tests/gem_workarounds.c          |   1 -
 tests/generate_testlist.sh       |  10 +
 tests/igt_command_line.sh        |  39 +-
 tests/kms_cursor_legacy.c        |   1 -
 tests/kms_flip.c                 |   2 -
 tests/kms_plane.c                |   3 +-
 tests/kms_render.c               |   2 -
 tests/kms_setmode.c              |   2 -
 tests/meson.build                | 290 ++++++++++++
 tests/pm_rc6_residency.c         |   1 -
 tests/pm_rps.c                   |   1 -
 tests/prime_mmap.c               |   1 -
 tests/prime_self_import.c        |   1 -
 tests/testdisplay.c              |   2 -
 tests/testdisplay_hotplug.c      |   2 -
 tests/tools_test.c               |   2 -
 tools/Makefile.am                |   2 +-
 tools/aubdump.c                  |   2 -
 tools/intel_audio_dump.c         |   1 -
 tools/intel_dump_decode.c        |   1 -
 tools/intel_error_decode.c       |   1 -
 tools/intel_framebuffer_dump.c   |   1 -
 tools/intel_gpu_frequency.c      |   1 -
 tools/intel_gpu_top.c            |   2 -
 tools/intel_guc_logger.c         |   1 -
 tools/intel_gvtg_test.c          |   2 -
 tools/intel_l3_parity.c          |   3 -
 tools/intel_l3_udev_listener.c   |   5 -
 tools/meson.build                |  59 +++
 tools/null_state_gen/meson.build |  15 +
 102 files changed, 1071 insertions(+), 1169 deletions(-)
 create mode 100644 assembler/meson.build
 create mode 100644 benchmarks/meson.build
 delete mode 100644 demos/.gitignore
 delete mode 100644 demos/Android.mk
 delete mode 100644 demos/Makefile.am
 delete mode 100644 demos/Makefile.sources
 delete mode 100644 demos/intel_sprite_on.c
 create mode 100644 lib/dummy.c
 create mode 100644 lib/meson.build
 create mode 100644 lib/tests/meson.build
 create mode 100644 lib/version.h.in
 create mode 100644 man/defs.rst.in
 create mode 100644 man/meson.build
 create mode 100755 man/rst2man.sh
 create mode 100644 meson.build
 create mode 100644 overlay/meson.build
 create mode 100755 tests/generate_testlist.sh
 create mode 100644 tests/meson.build
 create mode 100644 tools/meson.build
 create mode 100644 tools/null_state_gen/meson.build

-- 
2.14.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux