summaryrefslogtreecommitdiffstats
path: root/meson.build
diff options
context:
space:
mode:
authorJose R. Ziviani2022-05-28 00:20:35 +0200
committerPaolo Bonzini2022-06-06 09:26:53 +0200
commit05d6814c3eb16524e992bb7048d3385f8e99dd6a (patch)
tree2addbfd92970f00c81c98cafc58f54648e5ad6c5 /meson.build
parentmodules: introduces module_kconfig directive (diff)
downloadqemu-05d6814c3eb16524e992bb7048d3385f8e99dd6a.tar.gz
qemu-05d6814c3eb16524e992bb7048d3385f8e99dd6a.tar.xz
qemu-05d6814c3eb16524e992bb7048d3385f8e99dd6a.zip
modules: generates per-target modinfo
This patch changes the way modinfo is generated and built. Instead of one modinfo.c it generates one modinfo-<target>-softmmu.c per target. It aims a fine-tune control of modules by configuring Kconfig. Signed-off-by: Jose R. Ziviani <jziviani@suse.de> Signed-off-by: Dario Faggioli <dfaggioli@suse.com> Message-Id: <165369003038.5857.13084289285185196779.stgit@work> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build25
1 files changed, 17 insertions, 8 deletions
diff --git a/meson.build b/meson.build
index 9b3fd4e52b..d738391810 100644
--- a/meson.build
+++ b/meson.build
@@ -3175,14 +3175,23 @@ foreach d, list : target_modules
endforeach
if enable_modules
- modinfo_src = custom_target('modinfo.c',
- output: 'modinfo.c',
- input: modinfo_files,
- command: [modinfo_generate, '@INPUT@'],
- capture: true)
- modinfo_lib = static_library('modinfo', modinfo_src)
- modinfo_dep = declare_dependency(link_whole: modinfo_lib)
- softmmu_ss.add(modinfo_dep)
+ foreach target : target_dirs
+ if target.endswith('-softmmu')
+ config_target = config_target_mak[target]
+ config_devices_mak = target + '-config-devices.mak'
+ modinfo_src = custom_target('modinfo-' + target + '.c',
+ output: 'modinfo-' + target + '.c',
+ input: modinfo_files,
+ command: [modinfo_generate, '--devices', config_devices_mak, '@INPUT@'],
+ capture: true)
+
+ modinfo_lib = static_library('modinfo-' + target + '.c', modinfo_src)
+ modinfo_dep = declare_dependency(link_with: modinfo_lib)
+
+ arch = config_target['TARGET_NAME'] == 'sparc64' ? 'sparc64' : config_target['TARGET_BASE_ARCH']
+ hw_arch[arch].add(modinfo_dep)
+ endif
+ endforeach
endif
nm = find_program('nm')