1a5665051SPaolo Bonziniproject('qemu', ['c'], meson_version: '>=0.55.0', 2a5665051SPaolo Bonzini default_options: ['warning_level=1', 'c_std=gnu99', 'cpp_std=gnu++11', 'b_lundef=false'], 3a5665051SPaolo Bonzini version: run_command('head', meson.source_root() / 'VERSION').stdout().strip()) 4a5665051SPaolo Bonzini 5a5665051SPaolo Bonzininot_found = dependency('', required: false) 6a5665051SPaolo Bonzinikeyval = import('unstable-keyval') 7a81df1b6SPaolo Bonziniss = import('sourceset') 8a81df1b6SPaolo Bonzini 9a81df1b6SPaolo Bonzinicc = meson.get_compiler('c') 10a5665051SPaolo Bonziniconfig_host = keyval.load(meson.current_build_dir() / 'config-host.mak') 11a5665051SPaolo Bonzini 12a5665051SPaolo Bonziniadd_project_arguments(config_host['QEMU_CFLAGS'].split(), 13a5665051SPaolo Bonzini native: false, language: ['c', 'objc']) 14a5665051SPaolo Bonziniadd_project_arguments(config_host['QEMU_CXXFLAGS'].split(), 15a5665051SPaolo Bonzini native: false, language: 'cpp') 16a5665051SPaolo Bonziniadd_project_link_arguments(config_host['QEMU_LDFLAGS'].split(), 17a5665051SPaolo Bonzini native: false, language: ['c', 'cpp', 'objc']) 18a5665051SPaolo Bonziniadd_project_arguments(config_host['QEMU_INCLUDES'].split(), 19a5665051SPaolo Bonzini language: ['c', 'cpp', 'objc']) 20a5665051SPaolo Bonzini 21fc929892SMarc-André Lureaupython = import('python').find_installation() 22fc929892SMarc-André Lureau 23fc929892SMarc-André Lureaulink_language = meson.get_external_property('link_language', 'cpp') 24fc929892SMarc-André Lureauif link_language == 'cpp' 25fc929892SMarc-André Lureau add_languages('cpp', required: true, native: false) 26fc929892SMarc-André Lureauendif 27a5665051SPaolo Bonziniif host_machine.system() == 'darwin' 28a5665051SPaolo Bonzini add_languages('objc', required: false, native: false) 29a5665051SPaolo Bonziniendif 30a5665051SPaolo Bonzini 31968b4db3SPaolo Bonziniif 'SPARSE_CFLAGS' in config_host 32968b4db3SPaolo Bonzini run_target('sparse', 33968b4db3SPaolo Bonzini command: [find_program('scripts/check_sparse.py'), 34968b4db3SPaolo Bonzini config_host['SPARSE_CFLAGS'].split(), 35968b4db3SPaolo Bonzini 'compile_commands.json']) 36968b4db3SPaolo Bonziniendif 37968b4db3SPaolo Bonzini 38a5665051SPaolo Bonziniconfigure_file(input: files('scripts/ninjatool.py'), 39a5665051SPaolo Bonzini output: 'ninjatool', 40a5665051SPaolo Bonzini configuration: config_host) 41f9332757SPaolo Bonzini 42f9332757SPaolo Bonzinisupported_oses = ['windows', 'freebsd', 'netbsd', 'openbsd', 'darwin', 'sunos', 'linux'] 43f9332757SPaolo Bonzinisupported_cpus = ['ppc', 'ppc64', 's390x', 'sparc64', 'riscv32', 'riscv64', 'x86', 'x86_64', 44f9332757SPaolo Bonzini 'arm', 'aarch64', 'mips', 'mips64', 'sparc', 'sparc64'] 45f9332757SPaolo Bonzini 46f9332757SPaolo Bonzinicpu = host_machine.cpu_family() 47f9332757SPaolo Bonzinitargetos = host_machine.system() 48f9332757SPaolo Bonzini 49a81df1b6SPaolo Bonzinim = cc.find_library('m', required: false) 50a81df1b6SPaolo Bonziniutil = cc.find_library('util', required: false) 51a81df1b6SPaolo Bonzinisocket = [] 5204c6f1e7SMarc-André Lureauversion_res = [] 53d92989aaSMarc-André Lureaucoref = [] 54d92989aaSMarc-André Lureauiokit = [] 55d92989aaSMarc-André Lureaucocoa = [] 56d92989aaSMarc-André Lureauhvf = [] 57a81df1b6SPaolo Bonziniif targetos == 'windows' 58a81df1b6SPaolo Bonzini socket = cc.find_library('ws2_32') 5904c6f1e7SMarc-André Lureau 6004c6f1e7SMarc-André Lureau win = import('windows') 6104c6f1e7SMarc-André Lureau version_res = win.compile_resources('version.rc', 6204c6f1e7SMarc-André Lureau depend_files: files('pc-bios/qemu-nsis.ico'), 6304c6f1e7SMarc-André Lureau include_directories: include_directories('.')) 64d92989aaSMarc-André Lureauelif targetos == 'darwin' 65d92989aaSMarc-André Lureau coref = dependency('appleframeworks', modules: 'CoreFoundation') 66d92989aaSMarc-André Lureau iokit = dependency('appleframeworks', modules: 'IOKit') 67d92989aaSMarc-André Lureau cocoa = dependency('appleframeworks', modules: 'Cocoa') 68d92989aaSMarc-André Lureau hvf = dependency('appleframeworks', modules: 'Hypervisor') 69cfad62f1SPaolo Bonzinielif targetos == 'sunos' 70cfad62f1SPaolo Bonzini socket = [cc.find_library('socket'), 71cfad62f1SPaolo Bonzini cc.find_library('nsl'), 72cfad62f1SPaolo Bonzini cc.find_library('resolv')] 73cfad62f1SPaolo Bonzinielif targetos == 'haiku' 74cfad62f1SPaolo Bonzini socket = [cc.find_library('posix_error_mapper'), 75cfad62f1SPaolo Bonzini cc.find_library('network'), 76cfad62f1SPaolo Bonzini cc.find_library('bsd')] 77a81df1b6SPaolo Bonziniendif 78a81df1b6SPaolo Bonziniglib = declare_dependency(compile_args: config_host['GLIB_CFLAGS'].split(), 79a81df1b6SPaolo Bonzini link_args: config_host['GLIB_LIBS'].split()) 80a81df1b6SPaolo Bonzinigio = not_found 81a81df1b6SPaolo Bonziniif 'CONFIG_GIO' in config_host 82a81df1b6SPaolo Bonzini gio = declare_dependency(compile_args: config_host['GIO_CFLAGS'].split(), 83a81df1b6SPaolo Bonzini link_args: config_host['GIO_LIBS'].split()) 84a81df1b6SPaolo Bonziniendif 85a81df1b6SPaolo Bonzinilttng = not_found 86a81df1b6SPaolo Bonziniif 'CONFIG_TRACE_UST' in config_host 87a81df1b6SPaolo Bonzini lttng = declare_dependency(link_args: config_host['LTTNG_UST_LIBS'].split()) 88a81df1b6SPaolo Bonziniendif 89a81df1b6SPaolo Bonziniurcubp = not_found 90a81df1b6SPaolo Bonziniif 'CONFIG_TRACE_UST' in config_host 91a81df1b6SPaolo Bonzini urcubp = declare_dependency(link_args: config_host['URCU_BP_LIBS'].split()) 92a81df1b6SPaolo Bonziniendif 93a81df1b6SPaolo Bonzininettle = not_found 94a81df1b6SPaolo Bonziniif 'CONFIG_NETTLE' in config_host 95a81df1b6SPaolo Bonzini nettle = declare_dependency(compile_args: config_host['NETTLE_CFLAGS'].split(), 96a81df1b6SPaolo Bonzini link_args: config_host['NETTLE_LIBS'].split()) 97a81df1b6SPaolo Bonziniendif 98a81df1b6SPaolo Bonzinignutls = not_found 99a81df1b6SPaolo Bonziniif 'CONFIG_GNUTLS' in config_host 100a81df1b6SPaolo Bonzini gnutls = declare_dependency(compile_args: config_host['GNUTLS_CFLAGS'].split(), 101a81df1b6SPaolo Bonzini link_args: config_host['GNUTLS_LIBS'].split()) 102a81df1b6SPaolo Bonziniendif 103ea458960SMarc-André Lureaupixman = declare_dependency(compile_args: config_host['PIXMAN_CFLAGS'].split(), 104ea458960SMarc-André Lureau link_args: config_host['PIXMAN_LIBS'].split()) 105ec0d5893SMarc-André Lureaulibattr = not_found 106ec0d5893SMarc-André Lureauif 'CONFIG_ATTR' in config_host 107ec0d5893SMarc-André Lureau libattr = declare_dependency(link_args: config_host['LIBATTR_LIBS'].split()) 108ec0d5893SMarc-André Lureauendif 1093f99cf57SPaolo Bonziniseccomp = not_found 1103f99cf57SPaolo Bonziniif 'CONFIG_SECCOMP' in config_host 1113f99cf57SPaolo Bonzini seccomp = declare_dependency(compile_args: config_host['SECCOMP_CFLAGS'].split(), 1123f99cf57SPaolo Bonzini link_args: config_host['SECCOMP_LIBS'].split()) 1133f99cf57SPaolo Bonziniendif 1143f99cf57SPaolo Bonzinilibcap_ng = not_found 1153f99cf57SPaolo Bonziniif 'CONFIG_LIBCAP_NG' in config_host 1163f99cf57SPaolo Bonzini libcap_ng = declare_dependency(link_args: config_host['LIBCAP_NG_LIBS'].split()) 1173f99cf57SPaolo Bonziniendif 118ade60d4fSMarc-André Lureauxkbcommon = not_found 119ade60d4fSMarc-André Lureauif 'CONFIG_XKBCOMMON' in config_host 120ade60d4fSMarc-André Lureau xkbcommon = declare_dependency(compile_args: config_host['XKBCOMMON_CFLAGS'].split(), 121ade60d4fSMarc-André Lureau link_args: config_host['XKBCOMMON_LIBS'].split()) 122ade60d4fSMarc-André Lureauendif 1235ee24e78SMarc-André Lureaurt = cc.find_library('rt', required: false) 12499650b62SPaolo Bonzinilibiscsi = not_found 12599650b62SPaolo Bonziniif 'CONFIG_LIBISCSI' in config_host 12699650b62SPaolo Bonzini libiscsi = declare_dependency(compile_args: config_host['LIBISCSI_CFLAGS'].split(), 12799650b62SPaolo Bonzini link_args: config_host['LIBISCSI_LIBS'].split()) 12899650b62SPaolo Bonziniendif 129ea458960SMarc-André Lureaugbm = not_found 130ea458960SMarc-André Lureauif 'CONFIG_GBM' in config_host 131ea458960SMarc-André Lureau gbm = declare_dependency(compile_args: config_host['GBM_CFLAGS'].split(), 132ea458960SMarc-André Lureau link_args: config_host['GBM_LIBS'].split()) 133ea458960SMarc-André Lureauendif 134ea458960SMarc-André Lureauvirgl = not_found 135ea458960SMarc-André Lureauif 'CONFIG_VIRGL' in config_host 136ea458960SMarc-André Lureau virgl = declare_dependency(compile_args: config_host['VIRGL_CFLAGS'].split(), 137ea458960SMarc-André Lureau link_args: config_host['VIRGL_LIBS'].split()) 138ea458960SMarc-André Lureauendif 1391d7bb6abSMarc-André Lureaucurl = not_found 1401d7bb6abSMarc-André Lureauif 'CONFIG_CURL' in config_host 1411d7bb6abSMarc-André Lureau curl = declare_dependency(compile_args: config_host['CURL_CFLAGS'].split(), 1421d7bb6abSMarc-André Lureau link_args: config_host['CURL_LIBS'].split()) 1431d7bb6abSMarc-André Lureauendif 144f15bff25SPaolo Bonzinilibudev = not_found 145f15bff25SPaolo Bonziniif 'CONFIG_LIBUDEV' in config_host 146f15bff25SPaolo Bonzini libudev = declare_dependency(link_args: config_host['LIBUDEV_LIBS'].split()) 147f15bff25SPaolo Bonziniendif 148a81df1b6SPaolo Bonzini 149a81df1b6SPaolo Bonzinitarget_dirs = config_host['TARGET_DIRS'].split() 150a81df1b6SPaolo Bonzinihave_user = false 151a81df1b6SPaolo Bonzinihave_system = false 152a81df1b6SPaolo Bonziniforeach target : target_dirs 153a81df1b6SPaolo Bonzini have_user = have_user or target.endswith('-user') 154a81df1b6SPaolo Bonzini have_system = have_system or target.endswith('-softmmu') 155a81df1b6SPaolo Bonziniendforeach 156a81df1b6SPaolo Bonzinihave_tools = 'CONFIG_TOOLS' in config_host 157a81df1b6SPaolo Bonzinihave_block = have_system or have_tools 158a81df1b6SPaolo Bonzini 159a81df1b6SPaolo Bonzini# Generators 160a81df1b6SPaolo Bonzini 1612c273f32SMarc-André Lureaugenh = [] 1623f885659SMarc-André Lureauhxtool = find_program('scripts/hxtool') 163650b5d54SMarc-André Lureaushaderinclude = find_program('scripts/shaderinclude.pl') 164a81df1b6SPaolo Bonziniqapi_gen = find_program('scripts/qapi-gen.py') 165a81df1b6SPaolo Bonziniqapi_gen_depends = [ meson.source_root() / 'scripts/qapi/__init__.py', 166a81df1b6SPaolo Bonzini meson.source_root() / 'scripts/qapi/commands.py', 167a81df1b6SPaolo Bonzini meson.source_root() / 'scripts/qapi/common.py', 168a81df1b6SPaolo Bonzini meson.source_root() / 'scripts/qapi/doc.py', 169a81df1b6SPaolo Bonzini meson.source_root() / 'scripts/qapi/error.py', 170a81df1b6SPaolo Bonzini meson.source_root() / 'scripts/qapi/events.py', 171a81df1b6SPaolo Bonzini meson.source_root() / 'scripts/qapi/expr.py', 172a81df1b6SPaolo Bonzini meson.source_root() / 'scripts/qapi/gen.py', 173a81df1b6SPaolo Bonzini meson.source_root() / 'scripts/qapi/introspect.py', 174a81df1b6SPaolo Bonzini meson.source_root() / 'scripts/qapi/parser.py', 175a81df1b6SPaolo Bonzini meson.source_root() / 'scripts/qapi/schema.py', 176a81df1b6SPaolo Bonzini meson.source_root() / 'scripts/qapi/source.py', 177a81df1b6SPaolo Bonzini meson.source_root() / 'scripts/qapi/types.py', 178a81df1b6SPaolo Bonzini meson.source_root() / 'scripts/qapi/visit.py', 179a81df1b6SPaolo Bonzini meson.source_root() / 'scripts/qapi/common.py', 180a81df1b6SPaolo Bonzini meson.source_root() / 'scripts/qapi/doc.py', 181a81df1b6SPaolo Bonzini meson.source_root() / 'scripts/qapi-gen.py' 182a81df1b6SPaolo Bonzini] 183a81df1b6SPaolo Bonzini 184a81df1b6SPaolo Bonzinitracetool = [ 185a81df1b6SPaolo Bonzini python, files('scripts/tracetool.py'), 186a81df1b6SPaolo Bonzini '--backend=' + config_host['TRACE_BACKENDS'] 187a81df1b6SPaolo Bonzini] 188a81df1b6SPaolo Bonzini 1892c273f32SMarc-André Lureauqemu_version_cmd = [find_program('scripts/qemu-version.sh'), 1902c273f32SMarc-André Lureau meson.current_source_dir(), 1912c273f32SMarc-André Lureau config_host['PKGVERSION'], config_host['VERSION']] 1922c273f32SMarc-André Lureauqemu_version = custom_target('qemu-version.h', 1932c273f32SMarc-André Lureau output: 'qemu-version.h', 1942c273f32SMarc-André Lureau command: qemu_version_cmd, 1952c273f32SMarc-André Lureau capture: true, 1962c273f32SMarc-André Lureau build_by_default: true, 1972c273f32SMarc-André Lureau build_always_stale: true) 1982c273f32SMarc-André Lureaugenh += qemu_version 1992c273f32SMarc-André Lureau 2003f885659SMarc-André Lureauhxdep = [] 2013f885659SMarc-André Lureauhx_headers = [ 2023f885659SMarc-André Lureau ['qemu-options.hx', 'qemu-options.def'], 2033f885659SMarc-André Lureau ['qemu-img-cmds.hx', 'qemu-img-cmds.h'], 2043f885659SMarc-André Lureau] 2053f885659SMarc-André Lureauif have_system 2063f885659SMarc-André Lureau hx_headers += [ 2073f885659SMarc-André Lureau ['hmp-commands.hx', 'hmp-commands.h'], 2083f885659SMarc-André Lureau ['hmp-commands-info.hx', 'hmp-commands-info.h'], 2093f885659SMarc-André Lureau ] 2103f885659SMarc-André Lureauendif 2113f885659SMarc-André Lureauforeach d : hx_headers 2123f885659SMarc-André Lureau custom_target(d[1], 2133f885659SMarc-André Lureau input: files(d[0]), 2143f885659SMarc-André Lureau output: d[1], 2153f885659SMarc-André Lureau capture: true, 2163f885659SMarc-André Lureau build_by_default: true, # to be removed when added to a target 2173f885659SMarc-André Lureau command: [hxtool, '-h', '@INPUT0@']) 2183f885659SMarc-André Lureauendforeach 2193f885659SMarc-André Lureaugenh += hxdep 2203f885659SMarc-André Lureau 221a81df1b6SPaolo Bonzini# Collect sourcesets. 222a81df1b6SPaolo Bonzini 223a81df1b6SPaolo Bonziniutil_ss = ss.source_set() 224a81df1b6SPaolo Bonzinistub_ss = ss.source_set() 225a81df1b6SPaolo Bonzinitrace_ss = ss.source_set() 226a81df1b6SPaolo Bonzini 227a81df1b6SPaolo Bonzini############### 228a81df1b6SPaolo Bonzini# Trace files # 229a81df1b6SPaolo Bonzini############### 230a81df1b6SPaolo Bonzini 231a81df1b6SPaolo Bonzinitrace_events_subdirs = [ 232a81df1b6SPaolo Bonzini 'accel/kvm', 233a81df1b6SPaolo Bonzini 'accel/tcg', 234a81df1b6SPaolo Bonzini 'crypto', 235a81df1b6SPaolo Bonzini 'monitor', 236a81df1b6SPaolo Bonzini] 237a81df1b6SPaolo Bonziniif have_user 238a81df1b6SPaolo Bonzini trace_events_subdirs += [ 'linux-user' ] 239a81df1b6SPaolo Bonziniendif 240a81df1b6SPaolo Bonziniif have_block 241a81df1b6SPaolo Bonzini trace_events_subdirs += [ 242a81df1b6SPaolo Bonzini 'authz', 243a81df1b6SPaolo Bonzini 'block', 244a81df1b6SPaolo Bonzini 'io', 245a81df1b6SPaolo Bonzini 'nbd', 246a81df1b6SPaolo Bonzini 'scsi', 247a81df1b6SPaolo Bonzini ] 248a81df1b6SPaolo Bonziniendif 249a81df1b6SPaolo Bonziniif have_system 250a81df1b6SPaolo Bonzini trace_events_subdirs += [ 251a81df1b6SPaolo Bonzini 'audio', 252a81df1b6SPaolo Bonzini 'backends', 253a81df1b6SPaolo Bonzini 'backends/tpm', 254a81df1b6SPaolo Bonzini 'chardev', 255a81df1b6SPaolo Bonzini 'hw/9pfs', 256a81df1b6SPaolo Bonzini 'hw/acpi', 257a81df1b6SPaolo Bonzini 'hw/alpha', 258a81df1b6SPaolo Bonzini 'hw/arm', 259a81df1b6SPaolo Bonzini 'hw/audio', 260a81df1b6SPaolo Bonzini 'hw/block', 261a81df1b6SPaolo Bonzini 'hw/block/dataplane', 262a81df1b6SPaolo Bonzini 'hw/char', 263a81df1b6SPaolo Bonzini 'hw/display', 264a81df1b6SPaolo Bonzini 'hw/dma', 265a81df1b6SPaolo Bonzini 'hw/hppa', 266a81df1b6SPaolo Bonzini 'hw/hyperv', 267a81df1b6SPaolo Bonzini 'hw/i2c', 268a81df1b6SPaolo Bonzini 'hw/i386', 269a81df1b6SPaolo Bonzini 'hw/i386/xen', 270a81df1b6SPaolo Bonzini 'hw/ide', 271a81df1b6SPaolo Bonzini 'hw/input', 272a81df1b6SPaolo Bonzini 'hw/intc', 273a81df1b6SPaolo Bonzini 'hw/isa', 274a81df1b6SPaolo Bonzini 'hw/mem', 275a81df1b6SPaolo Bonzini 'hw/mips', 276a81df1b6SPaolo Bonzini 'hw/misc', 277a81df1b6SPaolo Bonzini 'hw/misc/macio', 278a81df1b6SPaolo Bonzini 'hw/net', 279a81df1b6SPaolo Bonzini 'hw/nvram', 280a81df1b6SPaolo Bonzini 'hw/pci', 281a81df1b6SPaolo Bonzini 'hw/pci-host', 282a81df1b6SPaolo Bonzini 'hw/ppc', 283a81df1b6SPaolo Bonzini 'hw/rdma', 284a81df1b6SPaolo Bonzini 'hw/rdma/vmw', 285a81df1b6SPaolo Bonzini 'hw/rtc', 286a81df1b6SPaolo Bonzini 'hw/s390x', 287a81df1b6SPaolo Bonzini 'hw/scsi', 288a81df1b6SPaolo Bonzini 'hw/sd', 289a81df1b6SPaolo Bonzini 'hw/sparc', 290a81df1b6SPaolo Bonzini 'hw/sparc64', 291a81df1b6SPaolo Bonzini 'hw/ssi', 292a81df1b6SPaolo Bonzini 'hw/timer', 293a81df1b6SPaolo Bonzini 'hw/tpm', 294a81df1b6SPaolo Bonzini 'hw/usb', 295a81df1b6SPaolo Bonzini 'hw/vfio', 296a81df1b6SPaolo Bonzini 'hw/virtio', 297a81df1b6SPaolo Bonzini 'hw/watchdog', 298a81df1b6SPaolo Bonzini 'hw/xen', 299a81df1b6SPaolo Bonzini 'hw/gpio', 300a81df1b6SPaolo Bonzini 'hw/riscv', 301a81df1b6SPaolo Bonzini 'migration', 302a81df1b6SPaolo Bonzini 'net', 303a81df1b6SPaolo Bonzini 'ui', 304a81df1b6SPaolo Bonzini ] 305a81df1b6SPaolo Bonziniendif 306a81df1b6SPaolo Bonzinitrace_events_subdirs += [ 307a81df1b6SPaolo Bonzini 'hw/core', 308a81df1b6SPaolo Bonzini 'qapi', 309a81df1b6SPaolo Bonzini 'qom', 310a81df1b6SPaolo Bonzini 'target/arm', 311a81df1b6SPaolo Bonzini 'target/hppa', 312a81df1b6SPaolo Bonzini 'target/i386', 313a81df1b6SPaolo Bonzini 'target/mips', 314a81df1b6SPaolo Bonzini 'target/ppc', 315a81df1b6SPaolo Bonzini 'target/riscv', 316a81df1b6SPaolo Bonzini 'target/s390x', 317a81df1b6SPaolo Bonzini 'target/sparc', 318a81df1b6SPaolo Bonzini 'util', 319a81df1b6SPaolo Bonzini] 320a81df1b6SPaolo Bonzini 321a81df1b6SPaolo Bonzinisubdir('qapi') 322a81df1b6SPaolo Bonzinisubdir('qobject') 323a81df1b6SPaolo Bonzinisubdir('stubs') 324a81df1b6SPaolo Bonzinisubdir('trace') 325a81df1b6SPaolo Bonzinisubdir('util') 326a81df1b6SPaolo Bonzinisubdir('crypto') 327a81df1b6SPaolo Bonzinisubdir('storage-daemon') 3282d78b56eSMarc-André Lureausubdir('ui') 329a81df1b6SPaolo Bonzini 330a81df1b6SPaolo Bonzini# Build targets from sourcesets 331a81df1b6SPaolo Bonzini 332a81df1b6SPaolo Bonzinistub_ss = stub_ss.apply(config_host, strict: false) 333a81df1b6SPaolo Bonzini 334a81df1b6SPaolo Bonziniutil_ss.add_all(trace_ss) 335a81df1b6SPaolo Bonziniutil_ss = util_ss.apply(config_host, strict: false) 336a81df1b6SPaolo Bonzinilibqemuutil = static_library('qemuutil', 337a81df1b6SPaolo Bonzini sources: util_ss.sources() + stub_ss.sources() + genh, 338a81df1b6SPaolo Bonzini dependencies: [util_ss.dependencies(), m, glib, socket]) 339a81df1b6SPaolo Bonziniqemuutil = declare_dependency(link_with: libqemuutil, 34004c6f1e7SMarc-André Lureau sources: genh + version_res) 341a81df1b6SPaolo Bonzini 342ec0d5893SMarc-André Lureausubdir('fsdev') 343ec0d5893SMarc-André Lureau 344931049b4SPaolo Bonzini# Other build targets 345f15bff25SPaolo Bonziniif 'CONFIG_GUEST_AGENT' in config_host 346f15bff25SPaolo Bonzini subdir('qga') 347f15bff25SPaolo Bonziniendif 348f15bff25SPaolo Bonzini 349931049b4SPaolo Bonziniif have_tools 350a9c9727cSPaolo Bonzini subdir('contrib/rdmacm-mux') 3511d7bb6abSMarc-André Lureau subdir('contrib/elf2dmp') 352a9c9727cSPaolo Bonzini 353ade60d4fSMarc-André Lureau if 'CONFIG_XKBCOMMON' in config_host 354ade60d4fSMarc-André Lureau executable('qemu-keymap', files('qemu-keymap.c', 'ui/input-keymap.c'), 355ade60d4fSMarc-André Lureau dependencies: [qemuutil, xkbcommon], install: true) 356ade60d4fSMarc-André Lureau endif 357ade60d4fSMarc-André Lureau 358157e7b13SMarc-André Lureau executable('qemu-edid', files('qemu-edid.c', 'hw/display/edid-generate.c'), 359157e7b13SMarc-André Lureau dependencies: qemuutil, 360157e7b13SMarc-André Lureau install: true) 361157e7b13SMarc-André Lureau 362931049b4SPaolo Bonzini if 'CONFIG_VHOST_USER' in config_host 363931049b4SPaolo Bonzini subdir('contrib/libvhost-user') 3642d7ac0afSPaolo Bonzini subdir('contrib/vhost-user-blk') 365ea458960SMarc-André Lureau if 'CONFIG_LINUX' in config_host 366ea458960SMarc-André Lureau subdir('contrib/vhost-user-gpu') 367ea458960SMarc-André Lureau endif 36832fcc624SMarc-André Lureau subdir('contrib/vhost-user-input') 36999650b62SPaolo Bonzini subdir('contrib/vhost-user-scsi') 370931049b4SPaolo Bonzini endif 3718f51e01cSMarc-André Lureau 3728f51e01cSMarc-André Lureau if targetos == 'linux' 3738f51e01cSMarc-André Lureau executable('qemu-bridge-helper', files('qemu-bridge-helper.c'), 3748f51e01cSMarc-André Lureau dependencies: [qemuutil, libcap_ng], 3758f51e01cSMarc-André Lureau install: true, 3768f51e01cSMarc-André Lureau install_dir: get_option('libexecdir')) 3778f51e01cSMarc-André Lureau endif 3788f51e01cSMarc-André Lureau 3795ee24e78SMarc-André Lureau if 'CONFIG_IVSHMEM' in config_host 3805ee24e78SMarc-André Lureau subdir('contrib/ivshmem-client') 3815ee24e78SMarc-André Lureau subdir('contrib/ivshmem-server') 3825ee24e78SMarc-André Lureau endif 383931049b4SPaolo Bonziniendif 384931049b4SPaolo Bonzini 3853f99cf57SPaolo Bonzinisubdir('tools') 386*bdcbea7aSMarc-André Lureausubdir('pc-bios') 3873f99cf57SPaolo Bonzini 388f9332757SPaolo Bonzinisummary_info = {} 389f9332757SPaolo Bonzinisummary_info += {'Install prefix': config_host['prefix']} 390f9332757SPaolo Bonzinisummary_info += {'BIOS directory': config_host['qemu_datadir']} 391f9332757SPaolo Bonzinisummary_info += {'firmware path': config_host['qemu_firmwarepath']} 392f9332757SPaolo Bonzinisummary_info += {'binary directory': config_host['bindir']} 393f9332757SPaolo Bonzinisummary_info += {'library directory': config_host['libdir']} 394f9332757SPaolo Bonzinisummary_info += {'module directory': config_host['qemu_moddir']} 395f9332757SPaolo Bonzinisummary_info += {'libexec directory': config_host['libexecdir']} 396f9332757SPaolo Bonzinisummary_info += {'include directory': config_host['includedir']} 397f9332757SPaolo Bonzinisummary_info += {'config directory': config_host['sysconfdir']} 398f9332757SPaolo Bonziniif targetos != 'windows' 399f9332757SPaolo Bonzini summary_info += {'local state directory': config_host['qemu_localstatedir']} 400f9332757SPaolo Bonzini summary_info += {'Manual directory': config_host['mandir']} 401f9332757SPaolo Bonzinielse 402f9332757SPaolo Bonzini summary_info += {'local state directory': 'queried at runtime'} 403f9332757SPaolo Bonziniendif 404f9332757SPaolo Bonzinisummary_info += {'Build directory': meson.current_build_dir()} 405f9332757SPaolo Bonzinisummary_info += {'Source path': meson.current_source_dir()} 406f9332757SPaolo Bonzinisummary_info += {'GIT binary': config_host['GIT']} 407f9332757SPaolo Bonzinisummary_info += {'GIT submodules': config_host['GIT_SUBMODULES']} 408f9332757SPaolo Bonzinisummary_info += {'C compiler': meson.get_compiler('c').cmd_array()[0]} 409f9332757SPaolo Bonzinisummary_info += {'Host C compiler': meson.get_compiler('c', native: true).cmd_array()[0]} 410f9332757SPaolo Bonziniif link_language == 'cpp' 411f9332757SPaolo Bonzini summary_info += {'C++ compiler': meson.get_compiler('cpp').cmd_array()[0]} 412f9332757SPaolo Bonzinielse 413f9332757SPaolo Bonzini summary_info += {'C++ compiler': false} 414f9332757SPaolo Bonziniendif 415f9332757SPaolo Bonziniif targetos == 'darwin' 416f9332757SPaolo Bonzini summary_info += {'Objective-C compiler': meson.get_compiler('objc').cmd_array()[0]} 417f9332757SPaolo Bonziniendif 418f9332757SPaolo Bonzinisummary_info += {'ARFLAGS': config_host['ARFLAGS']} 419f9332757SPaolo Bonzinisummary_info += {'CFLAGS': config_host['CFLAGS']} 420f9332757SPaolo Bonzinisummary_info += {'QEMU_CFLAGS': config_host['QEMU_CFLAGS']} 421f9332757SPaolo Bonzinisummary_info += {'QEMU_LDFLAGS': config_host['QEMU_LDFLAGS']} 422f9332757SPaolo Bonzinisummary_info += {'make': config_host['MAKE']} 423f9332757SPaolo Bonzinisummary_info += {'install': config_host['INSTALL']} 424f9332757SPaolo Bonzinisummary_info += {'python': '@0@ (version: @1@)'.format(python.full_path(), python.language_version())} 425f9332757SPaolo Bonzinisummary_info += {'sphinx-build': config_host['SPHINX_BUILD']} 426f9332757SPaolo Bonzinisummary_info += {'genisoimage': config_host['GENISOIMAGE']} 427f9332757SPaolo Bonzini# TODO: add back version 428f9332757SPaolo Bonzinisummary_info += {'slirp support': config_host.has_key('CONFIG_SLIRP')} 429f9332757SPaolo Bonziniif config_host.has_key('CONFIG_SLIRP') 430f9332757SPaolo Bonzini summary_info += {'smbd': config_host['CONFIG_SMBD_COMMAND']} 431f9332757SPaolo Bonziniendif 432f9332757SPaolo Bonzinisummary_info += {'module support': config_host.has_key('CONFIG_MODULES')} 433f9332757SPaolo Bonziniif config_host.has_key('CONFIG_MODULES') 434f9332757SPaolo Bonzini summary_info += {'alternative module path': config_host.has_key('CONFIG_MODULE_UPGRADES')} 435f9332757SPaolo Bonziniendif 436f9332757SPaolo Bonzinisummary_info += {'host CPU': cpu} 437f9332757SPaolo Bonzinisummary_info += {'host endianness': build_machine.endian()} 438f9332757SPaolo Bonzinisummary_info += {'target list': config_host['TARGET_DIRS']} 439f9332757SPaolo Bonzinisummary_info += {'gprof enabled': config_host.has_key('CONFIG_GPROF')} 440f9332757SPaolo Bonzinisummary_info += {'sparse enabled': meson.get_compiler('c').cmd_array().contains('cgcc')} 441f9332757SPaolo Bonzinisummary_info += {'strip binaries': get_option('strip')} 442f9332757SPaolo Bonzinisummary_info += {'profiler': config_host.has_key('CONFIG_PROFILER')} 443f9332757SPaolo Bonzinisummary_info += {'static build': config_host.has_key('CONFIG_TOOLS')} 444f9332757SPaolo Bonziniif targetos == 'darwin' 445f9332757SPaolo Bonzini summary_info += {'Cocoa support': config_host.has_key('CONFIG_COCOA')} 446f9332757SPaolo Bonziniendif 447f9332757SPaolo Bonzini# TODO: add back version 448f9332757SPaolo Bonzinisummary_info += {'SDL support': config_host.has_key('CONFIG_SDL')} 449f9332757SPaolo Bonzinisummary_info += {'SDL image support': config_host.has_key('CONFIG_SDL_IMAGE')} 450f9332757SPaolo Bonzini# TODO: add back version 451f9332757SPaolo Bonzinisummary_info += {'GTK support': config_host.has_key('CONFIG_GTK')} 452f9332757SPaolo Bonzinisummary_info += {'GTK GL support': config_host.has_key('CONFIG_GTK_GL')} 453f9332757SPaolo Bonzini# TODO: add back version 454f9332757SPaolo Bonzinisummary_info += {'VTE support': config_host.has_key('CONFIG_VTE')} 455f9332757SPaolo Bonzinisummary_info += {'TLS priority': config_host['CONFIG_TLS_PRIORITY']} 456f9332757SPaolo Bonzinisummary_info += {'GNUTLS support': config_host.has_key('CONFIG_GNUTLS')} 457f9332757SPaolo Bonzini# TODO: add back version 458f9332757SPaolo Bonzinisummary_info += {'libgcrypt': config_host.has_key('CONFIG_GCRYPT')} 459f9332757SPaolo Bonziniif config_host.has_key('CONFIG_GCRYPT') 460f9332757SPaolo Bonzini summary_info += {' hmac': config_host.has_key('CONFIG_GCRYPT_HMAC')} 461f9332757SPaolo Bonzini summary_info += {' XTS': not config_host.has_key('CONFIG_QEMU_PRIVATE_XTS')} 462f9332757SPaolo Bonziniendif 463f9332757SPaolo Bonzini# TODO: add back version 464f9332757SPaolo Bonzinisummary_info += {'nettle': config_host.has_key('CONFIG_NETTLE')} 465f9332757SPaolo Bonziniif config_host.has_key('CONFIG_NETTLE') 466f9332757SPaolo Bonzini summary_info += {' XTS': not config_host.has_key('CONFIG_QEMU_PRIVATE_XTS')} 467f9332757SPaolo Bonziniendif 468f9332757SPaolo Bonzinisummary_info += {'libtasn1': config_host.has_key('CONFIG_TASN1')} 469f9332757SPaolo Bonzinisummary_info += {'PAM': config_host.has_key('CONFIG_AUTH_PAM')} 470f9332757SPaolo Bonzinisummary_info += {'iconv support': config_host.has_key('CONFIG_ICONV')} 471f9332757SPaolo Bonzinisummary_info += {'curses support': config_host.has_key('CONFIG_CURSES')} 472f9332757SPaolo Bonzini# TODO: add back version 473f9332757SPaolo Bonzinisummary_info += {'virgl support': config_host.has_key('CONFIG_VIRGL')} 474f9332757SPaolo Bonzinisummary_info += {'curl support': config_host.has_key('CONFIG_CURL')} 475f9332757SPaolo Bonzinisummary_info += {'mingw32 support': targetos == 'windows'} 476f9332757SPaolo Bonzinisummary_info += {'Audio drivers': config_host['CONFIG_AUDIO_DRIVERS']} 477f9332757SPaolo Bonzinisummary_info += {'Block whitelist (rw)': config_host['CONFIG_BDRV_RW_WHITELIST']} 478f9332757SPaolo Bonzinisummary_info += {'Block whitelist (ro)': config_host['CONFIG_BDRV_RO_WHITELIST']} 479f9332757SPaolo Bonzinisummary_info += {'VirtFS support': config_host.has_key('CONFIG_VIRTFS')} 480f9332757SPaolo Bonzinisummary_info += {'Multipath support': config_host.has_key('CONFIG_MPATH')} 481f9332757SPaolo Bonzinisummary_info += {'VNC support': config_host.has_key('CONFIG_VNC')} 482f9332757SPaolo Bonziniif config_host.has_key('CONFIG_VNC') 483f9332757SPaolo Bonzini summary_info += {'VNC SASL support': config_host.has_key('CONFIG_VNC_SASL')} 484f9332757SPaolo Bonzini summary_info += {'VNC JPEG support': config_host.has_key('CONFIG_VNC_JPEG')} 485f9332757SPaolo Bonzini summary_info += {'VNC PNG support': config_host.has_key('CONFIG_VNC_PNG')} 486f9332757SPaolo Bonziniendif 487f9332757SPaolo Bonzinisummary_info += {'xen support': config_host.has_key('CONFIG_XEN_BACKEND')} 488f9332757SPaolo Bonziniif config_host.has_key('CONFIG_XEN_BACKEND') 489f9332757SPaolo Bonzini summary_info += {'xen ctrl version': config_host['CONFIG_XEN_CTRL_INTERFACE_VERSION']} 490f9332757SPaolo Bonziniendif 491f9332757SPaolo Bonzinisummary_info += {'brlapi support': config_host.has_key('CONFIG_BRLAPI')} 492f9332757SPaolo Bonzinisummary_info += {'Documentation': config_host.has_key('BUILD_DOCS')} 493f9332757SPaolo Bonzinisummary_info += {'PIE': get_option('b_pie')} 494f9332757SPaolo Bonzinisummary_info += {'vde support': config_host.has_key('CONFIG_VDE')} 495f9332757SPaolo Bonzinisummary_info += {'netmap support': config_host.has_key('CONFIG_NETMAP')} 496f9332757SPaolo Bonzinisummary_info += {'Linux AIO support': config_host.has_key('CONFIG_LINUX_AIO')} 497f9332757SPaolo Bonzinisummary_info += {'Linux io_uring support': config_host.has_key('CONFIG_LINUX_IO_URING')} 498f9332757SPaolo Bonzinisummary_info += {'ATTR/XATTR support': config_host.has_key('CONFIG_ATTR')} 499f9332757SPaolo Bonzinisummary_info += {'Install blobs': config_host.has_key('INSTALL_BLOBS')} 500f9332757SPaolo Bonzini# TODO: add back KVM/HAX/HVF/WHPX/TCG 501f9332757SPaolo Bonzini#summary_info += {'KVM support': have_kvm'} 502f9332757SPaolo Bonzini#summary_info += {'HAX support': have_hax'} 503f9332757SPaolo Bonzini#summary_info += {'HVF support': have_hvf'} 504f9332757SPaolo Bonzini#summary_info += {'WHPX support': have_whpx'} 505f9332757SPaolo Bonzini#summary_info += {'TCG support': have_tcg'} 506f9332757SPaolo Bonzini#if get_option('tcg') 507f9332757SPaolo Bonzini# summary_info += {'TCG debug enabled': config_host.has_key('CONFIG_DEBUG_TCG')} 508f9332757SPaolo Bonzini# summary_info += {'TCG interpreter': config_host.has_key('CONFIG_TCG_INTERPRETER')} 509f9332757SPaolo Bonzini#endif 510f9332757SPaolo Bonzinisummary_info += {'malloc trim support': config_host.has_key('CONFIG_MALLOC_TRIM')} 511f9332757SPaolo Bonzinisummary_info += {'RDMA support': config_host.has_key('CONFIG_RDMA')} 512f9332757SPaolo Bonzinisummary_info += {'PVRDMA support': config_host.has_key('CONFIG_PVRDMA')} 513f9332757SPaolo Bonzinisummary_info += {'fdt support': config_host.has_key('CONFIG_FDT')} 514f9332757SPaolo Bonzinisummary_info += {'membarrier': config_host.has_key('CONFIG_MEMBARRIER')} 515f9332757SPaolo Bonzinisummary_info += {'preadv support': config_host.has_key('CONFIG_PREADV')} 516f9332757SPaolo Bonzinisummary_info += {'fdatasync': config_host.has_key('CONFIG_FDATASYNC')} 517f9332757SPaolo Bonzinisummary_info += {'madvise': config_host.has_key('CONFIG_MADVISE')} 518f9332757SPaolo Bonzinisummary_info += {'posix_madvise': config_host.has_key('CONFIG_POSIX_MADVISE')} 519f9332757SPaolo Bonzinisummary_info += {'posix_memalign': config_host.has_key('CONFIG_POSIX_MEMALIGN')} 520f9332757SPaolo Bonzinisummary_info += {'libcap-ng support': config_host.has_key('CONFIG_LIBCAP_NG')} 521f9332757SPaolo Bonzinisummary_info += {'vhost-net support': config_host.has_key('CONFIG_VHOST_NET')} 522f9332757SPaolo Bonzinisummary_info += {'vhost-crypto support': config_host.has_key('CONFIG_VHOST_CRYPTO')} 523f9332757SPaolo Bonzinisummary_info += {'vhost-scsi support': config_host.has_key('CONFIG_VHOST_SCSI')} 524f9332757SPaolo Bonzinisummary_info += {'vhost-vsock support': config_host.has_key('CONFIG_VHOST_VSOCK')} 525f9332757SPaolo Bonzinisummary_info += {'vhost-user support': config_host.has_key('CONFIG_VHOST_KERNEL')} 526f9332757SPaolo Bonzinisummary_info += {'vhost-user-fs support': config_host.has_key('CONFIG_VHOST_USER_FS')} 527f9332757SPaolo Bonzinisummary_info += {'vhost-vdpa support': config_host.has_key('CONFIG_VHOST_VDPA')} 528f9332757SPaolo Bonzinisummary_info += {'Trace backends': config_host['TRACE_BACKENDS']} 529f9332757SPaolo Bonziniif config_host['TRACE_BACKENDS'].split().contains('simple') 530f9332757SPaolo Bonzini summary_info += {'Trace output file': config_host['CONFIG_TRACE_FILE'] + '-<pid>'} 531f9332757SPaolo Bonziniendif 532f9332757SPaolo Bonzini# TODO: add back protocol and server version 533f9332757SPaolo Bonzinisummary_info += {'spice support': config_host.has_key('CONFIG_SPICE')} 534f9332757SPaolo Bonzinisummary_info += {'rbd support': config_host.has_key('CONFIG_RBD')} 535f9332757SPaolo Bonzinisummary_info += {'xfsctl support': config_host.has_key('CONFIG_XFS')} 536f9332757SPaolo Bonzinisummary_info += {'smartcard support': config_host.has_key('CONFIG_SMARTCARD')} 537f9332757SPaolo Bonzinisummary_info += {'libusb': config_host.has_key('CONFIG_USB_LIBUSB')} 538f9332757SPaolo Bonzinisummary_info += {'usb net redir': config_host.has_key('CONFIG_USB_REDIR')} 539f9332757SPaolo Bonzinisummary_info += {'OpenGL support': config_host.has_key('CONFIG_OPENGL')} 540f9332757SPaolo Bonzinisummary_info += {'OpenGL dmabufs': config_host.has_key('CONFIG_OPENGL_DMABUF')} 541f9332757SPaolo Bonzinisummary_info += {'libiscsi support': config_host.has_key('CONFIG_LIBISCSI')} 542f9332757SPaolo Bonzinisummary_info += {'libnfs support': config_host.has_key('CONFIG_LIBNFS')} 543f9332757SPaolo Bonzinisummary_info += {'build guest agent': config_host.has_key('CONFIG_GUEST_AGENT')} 544f9332757SPaolo Bonziniif targetos == 'windows' 545f9332757SPaolo Bonzini if 'WIN_SDK' in config_host 546f9332757SPaolo Bonzini summary_info += {'Windows SDK': config_host['WIN_SDK']} 547f9332757SPaolo Bonzini endif 548f9332757SPaolo Bonzini summary_info += {'QGA VSS support': config_host.has_key('CONFIG_QGA_VSS')} 549f9332757SPaolo Bonzini summary_info += {'QGA w32 disk info': config_host.has_key('CONFIG_QGA_NTDDSCSI')} 550f9332757SPaolo Bonzini summary_info += {'QGA MSI support': config_host.has_key('CONFIG_QGA_MSI_ENABLED')} 551f9332757SPaolo Bonziniendif 552f9332757SPaolo Bonzinisummary_info += {'seccomp support': config_host.has_key('CONFIG_SECCOMP')} 553f9332757SPaolo Bonzinisummary_info += {'coroutine backend': config_host['CONFIG_COROUTINE_BACKEND']} 554f9332757SPaolo Bonzinisummary_info += {'coroutine pool': config_host['CONFIG_COROUTINE_POOL'] == '1'} 555f9332757SPaolo Bonzinisummary_info += {'debug stack usage': config_host.has_key('CONFIG_DEBUG_STACK_USAGE')} 556f9332757SPaolo Bonzinisummary_info += {'mutex debugging': config_host.has_key('CONFIG_DEBUG_MUTEX')} 557f9332757SPaolo Bonzinisummary_info += {'crypto afalg': config_host.has_key('CONFIG_AF_ALG')} 558f9332757SPaolo Bonzinisummary_info += {'GlusterFS support': config_host.has_key('CONFIG_GLUSTERFS')} 559bf0e56a3SMarc-André Lureausummary_info += {'gcov': get_option('b_coverage')} 560f9332757SPaolo Bonzinisummary_info += {'TPM support': config_host.has_key('CONFIG_TPM')} 561f9332757SPaolo Bonzinisummary_info += {'libssh support': config_host.has_key('CONFIG_LIBSSH')} 562f9332757SPaolo Bonzinisummary_info += {'QOM debugging': config_host.has_key('CONFIG_QOM_CAST_DEBUG')} 563f9332757SPaolo Bonzinisummary_info += {'Live block migration': config_host.has_key('CONFIG_LIVE_BLOCK_MIGRATION')} 564f9332757SPaolo Bonzinisummary_info += {'lzo support': config_host.has_key('CONFIG_LZO')} 565f9332757SPaolo Bonzinisummary_info += {'snappy support': config_host.has_key('CONFIG_SNAPPY')} 566f9332757SPaolo Bonzinisummary_info += {'bzip2 support': config_host.has_key('CONFIG_BZIP2')} 567f9332757SPaolo Bonzinisummary_info += {'lzfse support': config_host.has_key('CONFIG_LZFSE')} 568f9332757SPaolo Bonzinisummary_info += {'zstd support': config_host.has_key('CONFIG_ZSTD')} 569f9332757SPaolo Bonzinisummary_info += {'NUMA host support': config_host.has_key('CONFIG_NUMA')} 570f9332757SPaolo Bonzinisummary_info += {'libxml2': config_host.has_key('CONFIG_LIBXML2')} 571f9332757SPaolo Bonzinisummary_info += {'tcmalloc support': config_host.has_key('CONFIG_TCMALLOC')} 572f9332757SPaolo Bonzinisummary_info += {'jemalloc support': config_host.has_key('CONFIG_JEMALLOC')} 573f9332757SPaolo Bonzinisummary_info += {'avx2 optimization': config_host.has_key('CONFIG_AVX2_OPT')} 574f9332757SPaolo Bonzinisummary_info += {'avx512f optimization': config_host.has_key('CONFIG_AVX512F_OPT')} 575f9332757SPaolo Bonzinisummary_info += {'replication support': config_host.has_key('CONFIG_REPLICATION')} 576f9332757SPaolo Bonzinisummary_info += {'bochs support': config_host.has_key('CONFIG_BOCHS')} 577f9332757SPaolo Bonzinisummary_info += {'cloop support': config_host.has_key('CONFIG_CLOOP')} 578f9332757SPaolo Bonzinisummary_info += {'dmg support': config_host.has_key('CONFIG_DMG')} 579f9332757SPaolo Bonzinisummary_info += {'qcow v1 support': config_host.has_key('CONFIG_QCOW1')} 580f9332757SPaolo Bonzinisummary_info += {'vdi support': config_host.has_key('CONFIG_VDI')} 581f9332757SPaolo Bonzinisummary_info += {'vvfat support': config_host.has_key('CONFIG_VVFAT')} 582f9332757SPaolo Bonzinisummary_info += {'qed support': config_host.has_key('CONFIG_QED')} 583f9332757SPaolo Bonzinisummary_info += {'parallels support': config_host.has_key('CONFIG_PARALLELS')} 584f9332757SPaolo Bonzinisummary_info += {'sheepdog support': config_host.has_key('CONFIG_SHEEPDOG')} 585f9332757SPaolo Bonzinisummary_info += {'capstone': config_host.has_key('CONFIG_CAPSTONE')} 586f9332757SPaolo Bonzinisummary_info += {'libpmem support': config_host.has_key('CONFIG_LIBPMEM')} 587f9332757SPaolo Bonzinisummary_info += {'libdaxctl support': config_host.has_key('CONFIG_LIBDAXCTL')} 588f9332757SPaolo Bonzinisummary_info += {'libudev': config_host.has_key('CONFIG_LIBUDEV')} 589f9332757SPaolo Bonzinisummary_info += {'default devices': config_host['CONFIG_MINIKCONF_MODE'] == '--defconfig'} 590f9332757SPaolo Bonzinisummary_info += {'plugin support': config_host.has_key('CONFIG_PLUGIN')} 591f9332757SPaolo Bonzinisummary_info += {'fuzzing support': config_host.has_key('CONFIG_FUZZ')} 592f9332757SPaolo Bonziniif config_host.has_key('HAVE_GDB_BIN') 593f9332757SPaolo Bonzini summary_info += {'gdb': config_host['HAVE_GDB_BIN']} 594f9332757SPaolo Bonziniendif 595f9332757SPaolo Bonzinisummary_info += {'thread sanitizer': config_host.has_key('CONFIG_TSAN')} 596f9332757SPaolo Bonzinisummary_info += {'rng-none': config_host.has_key('CONFIG_RNG_NONE')} 597f9332757SPaolo Bonzinisummary_info += {'Linux keyring': config_host.has_key('CONFIG_SECRET_KEYRING')} 598f9332757SPaolo Bonzinisummary(summary_info, bool_yn: true) 599f9332757SPaolo Bonzini 600f9332757SPaolo Bonziniif not supported_cpus.contains(cpu) 601f9332757SPaolo Bonzini message() 602f9332757SPaolo Bonzini warning('SUPPORT FOR THIS HOST CPU WILL GO AWAY IN FUTURE RELEASES!') 603f9332757SPaolo Bonzini message() 604f9332757SPaolo Bonzini message('CPU host architecture ' + cpu + ' support is not currently maintained.') 605f9332757SPaolo Bonzini message('The QEMU project intends to remove support for this host CPU in') 606f9332757SPaolo Bonzini message('a future release if nobody volunteers to maintain it and to') 607f9332757SPaolo Bonzini message('provide a build host for our continuous integration setup.') 608f9332757SPaolo Bonzini message('configure has succeeded and you can continue to build, but') 609f9332757SPaolo Bonzini message('if you care about QEMU on this platform you should contact') 610f9332757SPaolo Bonzini message('us upstream at qemu-devel@nongnu.org.') 611f9332757SPaolo Bonziniendif 612f9332757SPaolo Bonzini 613f9332757SPaolo Bonziniif not supported_oses.contains(targetos) 614f9332757SPaolo Bonzini message() 615f9332757SPaolo Bonzini warning('WARNING: SUPPORT FOR THIS HOST OS WILL GO AWAY IN FUTURE RELEASES!') 616f9332757SPaolo Bonzini message() 617f9332757SPaolo Bonzini message('Host OS ' + targetos + 'support is not currently maintained.') 618f9332757SPaolo Bonzini message('The QEMU project intends to remove support for this host OS in') 619f9332757SPaolo Bonzini message('a future release if nobody volunteers to maintain it and to') 620f9332757SPaolo Bonzini message('provide a build host for our continuous integration setup.') 621f9332757SPaolo Bonzini message('configure has succeeded and you can continue to build, but') 622f9332757SPaolo Bonzini message('if you care about QEMU on this platform you should contact') 623f9332757SPaolo Bonzini message('us upstream at qemu-devel@nongnu.org.') 624f9332757SPaolo Bonziniendif 625