All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gerd Hoffmann <kraxel@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Laurent Vivier" <lvivier@redhat.com>,
	"Kevin Wolf" <kwolf@redhat.com>, "Thomas Huth" <thuth@redhat.com>,
	"Cornelia Huck" <cohuck@redhat.com>,
	"Eduardo Habkost" <ehabkost@redhat.com>,
	qemu-block@nongnu.org, "David Hildenbrand" <david@redhat.com>,
	"Peter Lieven" <pl@kamp.de>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Richard Henderson" <richard.henderson@linaro.org>,
	"Max Reitz" <mreitz@redhat.com>,
	"Halil Pasic" <pasic@linux.ibm.com>,
	"Christian Borntraeger" <borntraeger@de.ibm.com>,
	qemu-s390x@nongnu.org, "Paolo Bonzini" <pbonzini@redhat.com>,
	"Gerd Hoffmann" <kraxel@redhat.com>,
	"Ronnie Sahlberg" <ronniesahlberg@gmail.com>,
	"Cleber Rosa" <crosa@redhat.com>,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	"Samuel Thibault" <samuel.thibault@ens-lyon.org>
Subject: [PATCH v3 19/24] modules: target-specific module build infrastructure
Date: Fri, 18 Jun 2021 06:53:48 +0200	[thread overview]
Message-ID: <20210618045353.2510174-20-kraxel@redhat.com> (raw)
In-Reply-To: <20210618045353.2510174-1-kraxel@redhat.com>

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 meson.build | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/meson.build b/meson.build
index 9cf50a50d39a..e822477a231a 100644
--- a/meson.build
+++ b/meson.build
@@ -1781,6 +1781,7 @@ user_ss = ss.source_set()
 util_ss = ss.source_set()
 
 modules = {}
+target_modules = {}
 hw_arch = {}
 target_arch = {}
 target_softmmu_arch = {}
@@ -2055,6 +2056,41 @@ foreach d, list : modules
   endforeach
 endforeach
 
+foreach d, list : target_modules
+  foreach m, module_ss : list
+    if enable_modules and targetos != 'windows'
+      foreach target : target_dirs
+        if target.endswith('-softmmu')
+          config_target = config_target_mak[target]
+          config_target += config_host
+          target_inc = [include_directories('target' / config_target['TARGET_BASE_ARCH'])]
+          c_args = ['-DNEED_CPU_H',
+                    '-DCONFIG_TARGET="@0@-config-target.h"'.format(target),
+                    '-DCONFIG_DEVICES="@0@-config-devices.h"'.format(target)]
+          target_module_ss = module_ss.apply(config_target, strict: false)
+          if target_module_ss.sources() != []
+            module_name = d + '-' + m + '-' + config_target['TARGET_NAME']
+            sl = static_library(module_name,
+                                [genh, target_module_ss.sources()],
+                                dependencies: [modulecommon, target_module_ss.dependencies()],
+                                include_directories: target_inc,
+                                c_args: c_args,
+                                pic: true)
+            softmmu_mods += sl
+            modinfo_files += custom_target(module_name + '.modinfo',
+                                           output: module_name + '.modinfo',
+                                           input: target_module_ss.sources(),
+                                           capture: true,
+                                           command: [modinfo_collect, '--target', target, '@INPUT@'])
+          endif
+        endif
+      endforeach
+    else
+      specific_ss.add_all(module_ss)
+    endif
+  endforeach
+endforeach
+
 if enable_modules
   modinfo_src = custom_target('modinfo.c',
                               output: 'modinfo.c',
-- 
2.31.1



  parent reply	other threads:[~2021-06-18  4:59 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-18  4:53 [PATCH v3 00/24] modules: add meta-data database Gerd Hoffmann
2021-06-18  4:53 ` [PATCH v3 01/24] modules: add modinfo macros Gerd Hoffmann
2021-06-18 17:46   ` Paolo Bonzini
2021-06-18  4:53 ` [PATCH v3 02/24] modules: collect module meta-data Gerd Hoffmann
2021-06-18 16:09   ` Paolo Bonzini
2021-06-21 12:52     ` Gerd Hoffmann
2021-06-18  4:53 ` [PATCH v3 03/24] modules: generate modinfo.c Gerd Hoffmann
2021-06-22 18:19   ` Jose R. Ziviani
2021-06-22 20:43   ` Jose R. Ziviani
2021-06-18  4:53 ` [PATCH v3 04/24] modules: add qxl module annotations Gerd Hoffmann
2021-06-18  4:53 ` [PATCH v3 05/24] modules: add virtio-gpu " Gerd Hoffmann
2021-06-18  4:53 ` [PATCH v3 06/24] modules: add chardev " Gerd Hoffmann
2021-06-18  4:53 ` [PATCH v3 07/24] modules: add audio " Gerd Hoffmann
2021-06-18  4:53 ` [PATCH v3 08/24] modules: add usb-redir " Gerd Hoffmann
2021-06-18  4:53 ` [PATCH v3 09/24] modules: add ccid " Gerd Hoffmann
2021-06-18  4:53 ` [PATCH v3 10/24] modules: add ui " Gerd Hoffmann
2021-06-18  4:53 ` [PATCH v3 11/24] modules: add s390x " Gerd Hoffmann
2021-06-18  4:53 ` [PATCH v3 12/24] modules: add block " Gerd Hoffmann
2021-06-18  4:53 ` [PATCH v3 13/24] modules: use modinfo for dependencies Gerd Hoffmann
2021-06-18 17:48   ` Paolo Bonzini
2021-06-18  4:53 ` [PATCH v3 14/24] modules: use modinfo for qom load Gerd Hoffmann
2021-06-18 17:49   ` Paolo Bonzini
2021-06-18  4:53 ` [PATCH v3 15/24] modules: use modinfo for qemu opts load Gerd Hoffmann
2021-06-18 17:50   ` Paolo Bonzini
2021-06-18  4:53 ` [PATCH v3 16/24] modules: add tracepoints Gerd Hoffmann
2021-06-18  4:53 ` [PATCH v3 17/24] modules: check arch and block load on mismatch Gerd Hoffmann
2021-06-18  4:53 ` [PATCH v3 18/24] modules: check arch on qom lookup Gerd Hoffmann
2021-06-18  4:53 ` Gerd Hoffmann [this message]
2021-06-18  4:53 ` [PATCH v3 20/24] accel: autoload modules Gerd Hoffmann
2021-06-18  4:53 ` [PATCH v3 21/24] accel: add qtest module annotations Gerd Hoffmann
2021-06-18  4:53 ` [PATCH v3 22/24] accel: build qtest modular Gerd Hoffmann
2021-06-18  4:53 ` [PATCH v3 23/24] accel: add tcg module annotations Gerd Hoffmann
2021-06-18  4:53 ` [PATCH v3 24/24] accel: build tcg modular Gerd Hoffmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210618045353.2510174-20-kraxel@redhat.com \
    --to=kraxel@redhat.com \
    --cc=borntraeger@de.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=crosa@redhat.com \
    --cc=david@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=lvivier@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=mst@redhat.com \
    --cc=pasic@linux.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=pl@kamp.de \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=ronniesahlberg@gmail.com \
    --cc=samuel.thibault@ens-lyon.org \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.