Just like we have boards that depend on TCG, not all boards in a
target may require libfdt.  Express one by one which boards do,
using Kconfig "depends on" and "select" directives, and use the
result to include system/device_tree.c in the build.

Some binaries do require libfdt altogether.  In a normal build without
--target-list or --enable-libfdt, these binaries will be disabled with a
message printed by meson.

Paolo

Paolo Bonzini (4):
  meson: remove system/internal distinction for libfdt
  kconfig: express dependency of individual boards on libfdt
  hw/xtensa: require libfdt
  configs: disable emulators that require it if libfdt is not found

 configs/targets/aarch64-softmmu.mak      |  1 +
 configs/targets/arm-softmmu.mak          |  1 +
 configs/targets/i386-softmmu.mak         |  1 -
 configs/targets/loongarch64-softmmu.mak  |  1 +
 configs/targets/microblaze-softmmu.mak   |  1 +
 configs/targets/microblazeel-softmmu.mak |  1 +
 configs/targets/mips64el-softmmu.mak     |  1 -
 configs/targets/or1k-softmmu.mak         |  1 +
 configs/targets/ppc-softmmu.mak          |  1 -
 configs/targets/ppc64-softmmu.mak        |  1 +
 configs/targets/riscv32-softmmu.mak      |  1 +
 configs/targets/riscv64-softmmu.mak      |  1 +
 configs/targets/rx-softmmu.mak           |  1 +
 configs/targets/x86_64-softmmu.mak       |  1 -
 meson.build                              | 82 ++++++++++++------------
 hw/xtensa/xtfpga.c                       |  9 ---
 .gitlab-ci.d/buildtest.yml               |  7 +-
 Kconfig.host                             |  3 +
 hw/arm/Kconfig                           |  5 ++
 hw/arm/meson.build                       |  2 +-
 hw/core/Kconfig                          |  9 ++-
 hw/core/meson.build                      |  2 +-
 hw/i386/Kconfig                          |  3 +-
 hw/loongarch/Kconfig                     |  3 +-
 hw/loongarch/meson.build                 |  2 +-
 hw/mips/Kconfig                          |  1 +
 hw/mips/meson.build                      |  2 +-
 hw/openrisc/Kconfig                      |  2 +
 hw/openrisc/meson.build                  |  4 +-
 hw/ppc/Kconfig                           | 15 +++--
 hw/ppc/meson.build                       |  4 +-
 hw/riscv/Kconfig                         |  4 ++
 hw/riscv/meson.build                     |  2 +-
 hw/rx/Kconfig                            |  3 +-
 hw/xtensa/Kconfig                        |  3 +-
 meson_options.txt                        |  6 +-
 scripts/meson-buildoptions.sh            |  4 +-
 system/meson.build                       |  2 +-
 target/arm/Kconfig                       |  2 +
 target/microblaze/Kconfig                |  1 +
 target/openrisc/Kconfig                  |  1 +
 target/riscv/Kconfig                     |  2 +
 42 files changed, 112 insertions(+), 87 deletions(-)

-- 
2.45.0


Reply via email to