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