qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Marc-André Lureau" <marcandre.lureau@redhat.com>
Subject: [PATCH 061/147] meson: convert block
Date: Mon, 10 Aug 2020 19:07:39 +0200	[thread overview]
Message-ID: <1597079345-42801-62-git-send-email-pbonzini@redhat.com> (raw)
In-Reply-To: <1597079345-42801-1-git-send-email-pbonzini@redhat.com>

From: Marc-André Lureau <marcandre.lureau@redhat.com>

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 Makefile                    |   8 ----
 Makefile.objs               |  32 ++++++++++---
 Makefile.target             |   3 +-
 block.c                     |   2 +-
 block/Makefile.objs         |  75 ------------------------------
 block/meson.build           | 111 ++++++++++++++++++++++++++++++++++++++++++++
 block/monitor/Makefile.objs |   2 -
 block/monitor/meson.build   |   2 +
 configure                   |  14 ++++--
 meson.build                 |  68 +++++++++++++++++++++++++++
 nbd/Makefile.objs           |   1 -
 nbd/meson.build             |   5 ++
 rules.mak                   |   3 +-
 scsi/Makefile.objs          |   4 --
 scsi/meson.build            |   4 ++
 15 files changed, 227 insertions(+), 107 deletions(-)
 delete mode 100644 block/Makefile.objs
 create mode 100644 block/meson.build
 delete mode 100644 block/monitor/Makefile.objs
 create mode 100644 block/monitor/meson.build
 delete mode 100644 nbd/Makefile.objs
 create mode 100644 nbd/meson.build
 delete mode 100644 scsi/Makefile.objs
 create mode 100644 scsi/meson.build

diff --git a/Makefile b/Makefile
index bd54901..f251703 100644
--- a/Makefile
+++ b/Makefile
@@ -105,7 +105,6 @@ include $(SRC_PATH)/rules.mak
 # lor is defined in rules.mak
 CONFIG_BLOCK := $(call lor,$(CONFIG_SOFTMMU),$(CONFIG_TOOLS))
 
-generated-files-y += module_block.h
 generated-files-y += target/s390x/gen-features.h
 target/s390x/gen-features.h: Makefile.ninja
 
@@ -166,8 +165,6 @@ include $(SRC_PATH)/Makefile.objs
 endif
 
 dummy := $(call unnest-vars,, \
-                block-obj-y \
-                block-obj-m \
                 storage-daemon-obj-y \
                 storage-daemon-obj-m \
                 common-obj-y \
@@ -288,11 +285,6 @@ ifdef CONFIG_MPATH
 scsi/qemu-pr-helper$(EXESUF): LIBS += -ludev -lmultipath -lmpathpersist
 endif
 
-module_block.h: $(SRC_PATH)/scripts/modules/module_block.py config-host.mak
-	$(call quiet-command,$(PYTHON) $< $@ \
-	$(addprefix $(SRC_PATH)/,$(patsubst %.mo,%.c,$(block-obj-m))), \
-	"GEN","$@")
-
 clean: recurse-clean
 # avoid old build problems by removing potentially incorrect old files
 	rm -f config.mak op-i386.h opc-i386.h gen-op-i386.h op-arm.h opc-arm.h gen-op-arm.h
diff --git a/Makefile.objs b/Makefile.objs
index 297bd5b..eeaa0cf 100644
--- a/Makefile.objs
+++ b/Makefile.objs
@@ -10,12 +10,20 @@ ifeq ($(call lor,$(CONFIG_SOFTMMU),$(CONFIG_TOOLS)),y)
 authz-obj-y = authz/libauthz.fa
 authz/libauthz.fa-libs = $(if $(CONFIG_AUTH_PAM),-lpam)
 
-block-obj-y = block/ nbd/ scsi/
-block-obj-y += block.o blockjob.o job.o
-block-obj-y += qemu-io-cmds.o
-block-obj-$(CONFIG_REPLICATION) += replication.o
-
-block-obj-m = block/
+block-obj-y += libblock.fa
+
+libblock.fa-libs = $(ZSTD_LIBS)
+libblock.fa-libs += $(LIBNFS_LIBS)
+libblock.fa-libs += $(LIBISCSI_LIBS)
+libblock.fa-libs += $(CURL_LIBS)
+libblock.fa-libs += $(RBD_LIBS)
+libblock.fa-libs += $(GLUSTERFS_LIBS)
+libblock.fa-libs += $(VXHS_LIBS)
+libblock.fa-libs += $(LIBSSH_LIBS)
+libblock.fa-libs += $(BZIP2_LIBS)
+libblock.fa-libs += $(LZFSE_LIBS)
+libblock.fa-libs += $(if $(CONFIG_LINUX_AIO),-laio)
+libblock.fa-libs += $(LIBXML2_LIBS)
 
 chardev-obj-y = chardev/libchardev.fa
 
@@ -40,7 +48,7 @@ storage-daemon-obj-$(CONFIG_POSIX) += os-posix.o
 # single QEMU executable should support all CPUs and machines.
 
 ifeq ($(CONFIG_SOFTMMU),y)
-common-obj-y = blockdev.o blockdev-nbd.o block/
+common-obj-y = blockdev.o blockdev-nbd.o
 common-obj-y += bootdevice.o iothread.o
 common-obj-y += dump/
 common-obj-y += job-qmp.o
@@ -55,6 +63,16 @@ common-obj-$(CONFIG_LINUX) += fsdev/
 common-obj-y += accel/
 common-obj-y += migration/
 
+common-obj-$(if $(CONFIG_CURL),m) += block-curl$(DSOSUF)
+common-obj-$(if $(CONFIG_GLUSTERFS),m) += block-gluster$(DSOSUF)
+common-obj-$(if $(CONFIG_LIBISCSI),m) += block-iscsi$(DSOSUF)
+common-obj-$(if $(CONFIG_LIBNFS),m) += block-nfs$(DSOSUF)
+common-obj-$(if $(CONFIG_LIBSSH),m) += block-ssh$(DSOSUF)
+common-obj-$(if $(CONFIG_RBD),m) += block-rbd$(DSOSUF)
+
+common-obj-$(if $(CONFIG_LZFSE),m) += block-dmg-lzfse$(DSOSUF)
+common-obj-$(if $(and $(CONFIG_BZIP2),$(CONFIG_DMG)),m) += block-dmg-bz2$(DSOSUF)
+
 common-obj-y += audio/
 common-obj-m += audio/
 common-obj-y += hw/
diff --git a/Makefile.target b/Makefile.target
index 6b9de09..c0575da 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -199,13 +199,12 @@ common-obj-m :=
 include $(SRC_PATH)/Makefile.objs
 dummy := $(call fix-paths,../,, \
               authz-obj-y \
+              block-obj-y \
               chardev-obj-y \
               crypto-obj-y \
               io-obj-y \
               qom-obj-y)
 dummy := $(call unnest-vars,.., \
-               block-obj-y \
-               block-obj-m \
                common-obj-y \
                common-obj-m)
 all-obj-y += $(common-obj-y)
diff --git a/block.c b/block.c
index d9ac0e0..67c5028 100644
--- a/block.c
+++ b/block.c
@@ -29,7 +29,7 @@
 #include "block/nbd.h"
 #include "block/qdict.h"
 #include "qemu/error-report.h"
-#include "module_block.h"
+#include "block/module_block.h"
 #include "qemu/main-loop.h"
 #include "qemu/module.h"
 #include "qapi/error.h"
diff --git a/block/Makefile.objs b/block/Makefile.objs
deleted file mode 100644
index 19c6f37..0000000
--- a/block/Makefile.objs
+++ /dev/null
@@ -1,75 +0,0 @@
-block-obj-y += raw-format.o vmdk.o vpc.o
-block-obj-$(CONFIG_QCOW1) += qcow.o
-block-obj-$(CONFIG_VDI) += vdi.o
-block-obj-$(CONFIG_CLOOP) += cloop.o
-block-obj-$(CONFIG_BOCHS) += bochs.o
-block-obj-$(CONFIG_VVFAT) += vvfat.o
-block-obj-$(CONFIG_DMG) += dmg.o
-
-block-obj-y += qcow2.o qcow2-refcount.o qcow2-cluster.o qcow2-snapshot.o qcow2-cache.o qcow2-bitmap.o qcow2-threads.o
-block-obj-$(CONFIG_QED) += qed.o qed-l2-cache.o qed-table.o qed-cluster.o
-block-obj-$(CONFIG_QED) += qed-check.o
-block-obj-y += vhdx.o vhdx-endian.o vhdx-log.o
-block-obj-y += quorum.o
-block-obj-y += blkdebug.o blkverify.o blkreplay.o
-block-obj-$(CONFIG_PARALLELS) += parallels.o
-block-obj-y += blklogwrites.o
-block-obj-y += block-backend.o snapshot.o qapi.o
-block-obj-$(CONFIG_WIN32) += file-win32.o win32-aio.o
-block-obj-$(CONFIG_POSIX) += file-posix.o
-block-obj-$(CONFIG_LINUX_AIO) += linux-aio.o
-block-obj-$(CONFIG_LINUX_IO_URING) += io_uring.o
-block-obj-y += null.o mirror.o commit.o io.o create.o amend.o
-block-obj-y += throttle-groups.o
-block-obj-$(CONFIG_LINUX) += nvme.o
-
-block-obj-y += nbd.o
-block-obj-$(CONFIG_SHEEPDOG) += sheepdog.o
-block-obj-$(CONFIG_LIBISCSI) += iscsi.o
-block-obj-$(if $(CONFIG_LIBISCSI),y,n) += iscsi-opts.o
-block-obj-$(CONFIG_LIBNFS) += nfs.o
-block-obj-$(CONFIG_CURL) += curl.o
-block-obj-$(CONFIG_RBD) += rbd.o
-block-obj-$(CONFIG_GLUSTERFS) += gluster.o
-block-obj-$(CONFIG_LIBSSH) += ssh.o
-block-obj-y += accounting.o dirty-bitmap.o
-block-obj-y += write-threshold.o
-block-obj-y += backup.o
-block-obj-$(CONFIG_REPLICATION) += replication.o
-block-obj-y += throttle.o copy-on-read.o
-block-obj-y += block-copy.o
-
-block-obj-y += crypto.o
-
-block-obj-y += aio_task.o
-block-obj-y += backup-top.o
-block-obj-y += filter-compress.o
-common-obj-y += monitor/
-block-obj-y += monitor/
-
-block-obj-y += stream.o
-
-common-obj-y += qapi-sysemu.o
-
-nfs.o-libs         := $(LIBNFS_LIBS)
-iscsi.o-cflags     := $(LIBISCSI_CFLAGS)
-iscsi.o-libs       := $(LIBISCSI_LIBS)
-curl.o-cflags      := $(CURL_CFLAGS)
-curl.o-libs        := $(CURL_LIBS)
-rbd.o-cflags       := $(RBD_CFLAGS)
-rbd.o-libs         := $(RBD_LIBS)
-gluster.o-cflags   := $(GLUSTERFS_CFLAGS)
-gluster.o-libs     := $(GLUSTERFS_LIBS)
-ssh.o-cflags       := $(LIBSSH_CFLAGS)
-ssh.o-libs         := $(LIBSSH_LIBS)
-block-obj-dmg-bz2-$(CONFIG_BZIP2) += dmg-bz2.o
-block-obj-$(if $(CONFIG_DMG),m,n) += $(block-obj-dmg-bz2-y)
-dmg-bz2.o-libs     := $(BZIP2_LIBS)
-block-obj-$(if $(CONFIG_LZFSE),m,n) += dmg-lzfse.o
-dmg-lzfse.o-libs   := $(LZFSE_LIBS)
-qcow.o-libs        := -lz
-linux-aio.o-libs   := -laio
-io_uring.o-cflags  := $(LINUX_IO_URING_CFLAGS)
-io_uring.o-libs    := $(LINUX_IO_URING_LIBS)
-parallels.o-cflags := $(LIBXML2_CFLAGS)
-parallels.o-libs   := $(LIBXML2_LIBS)
diff --git a/block/meson.build b/block/meson.build
new file mode 100644
index 0000000..a177f20
--- /dev/null
+++ b/block/meson.build
@@ -0,0 +1,111 @@
+block_ss.add(genh)
+block_ss.add(files(
+  'accounting.c',
+  'aio_task.c',
+  'amend.c',
+  'backup.c',
+  'backup-top.c',
+  'blkdebug.c',
+  'blklogwrites.c',
+  'blkreplay.c',
+  'blkverify.c',
+  'block-backend.c',
+  'block-copy.c',
+  'commit.c',
+  'copy-on-read.c',
+  'create.c',
+  'crypto.c',
+  'dirty-bitmap.c',
+  'filter-compress.c',
+  'io.c',
+  'mirror.c',
+  'nbd.c',
+  'null.c',
+  'qapi.c',
+  'qcow2-bitmap.c',
+  'qcow2-cache.c',
+  'qcow2-cluster.c',
+  'qcow2-refcount.c',
+  'qcow2-snapshot.c',
+  'qcow2-threads.c',
+  'qcow2.c',
+  'quorum.c',
+  'raw-format.c',
+  'snapshot.c',
+  'throttle-groups.c',
+  'throttle.c',
+  'vhdx-endian.c',
+  'vhdx-log.c',
+  'vhdx.c',
+  'vmdk.c',
+  'vpc.c',
+  'write-threshold.c',
+), zstd)
+
+block_ss.add(when: [zlib, 'CONFIG_QCOW1'], if_true: files('qcow.c'))
+block_ss.add(when: 'CONFIG_VDI', if_true: files('vdi.c'))
+block_ss.add(when: 'CONFIG_CLOOP', if_true: files('cloop.c'))
+block_ss.add(when: 'CONFIG_BOCHS', if_true: files('bochs.c'))
+block_ss.add(when: 'CONFIG_VVFAT', if_true: files('vvfat.c'))
+block_ss.add(when: 'CONFIG_DMG', if_true: files('dmg.c'))
+block_ss.add(when: 'CONFIG_QED', if_true: files(
+  'qed-check.c',
+  'qed-cluster.c',
+  'qed-l2-cache.c',
+  'qed-table.c',
+  'qed.c',
+))
+block_ss.add(when: [libxml2, 'CONFIG_PARALLELS'], if_true: files('parallels.c'))
+block_ss.add(when: 'CONFIG_WIN32', if_true: files('file-win32.c', 'win32-aio.c'))
+block_ss.add(when: 'CONFIG_POSIX', if_true: [files('file-posix.c'), coref, iokit])
+block_ss.add(when: 'CONFIG_LIBISCSI', if_true: files('iscsi-opts.c'))
+block_ss.add(when: 'CONFIG_LINUX', if_true: files('nvme.c'))
+block_ss.add(when: 'CONFIG_REPLICATION', if_true: files('replication.c'))
+block_ss.add(when: 'CONFIG_SHEEPDOG', if_true: files('sheepdog.c'))
+block_ss.add(when: ['CONFIG_LINUX_AIO', libaio], if_true: files('linux-aio.c'))
+block_ss.add(when: ['CONFIG_LINUX_IO_URING', linux_io_uring], if_true: files('io_uring.c'))
+
+block_modules = []
+
+modsrc = []
+foreach m : [
+  ['CONFIG_CURL', 'curl', [curl, glib], 'curl.c'],
+  ['CONFIG_GLUSTERFS', 'gluster', glusterfs, 'gluster.c'],
+  ['CONFIG_LIBISCSI', 'iscsi', libiscsi, 'iscsi.c'],
+  ['CONFIG_LIBNFS', 'nfs', libnfs, 'nfs.c'],
+  ['CONFIG_LIBSSH', 'ssh', libssh, 'ssh.c'],
+  ['CONFIG_RBD', 'rbd', rbd, 'rbd.c'],
+]
+  if config_host.has_key(m[0])
+    if enable_modules
+      modsrc += files(m[3])
+    endif
+    block_modules += [[m[1], files(m[3]), m[2]]]
+  endif
+endforeach
+
+# those are not exactly regular block modules, so treat them apart
+if 'CONFIG_DMG' in config_host
+  foreach m : [
+    ['CONFIG_LZFSE', 'dmg-lzfse', liblzfse, 'dmg-lzfse.c'],
+    ['CONFIG_BZIP2', 'dmg-bz2', [glib, libbzip2], 'dmg-bz2.c']
+  ]
+    if config_host.has_key(m[0])
+      block_modules += [[m[1], files(m[3]), m[2]]]
+    endif
+  endforeach
+endif
+
+module_block_py = find_program('../scripts/modules/module_block.py')
+module_block_h = custom_target('module_block.h',
+                               output: 'module_block.h',
+                               input: modsrc,
+                               command: [module_block_py, '@OUTPUT0@', modsrc])
+block_ss.add(module_block_h)
+
+block_ss.add(files('stream.c'))
+
+softmmu_ss.add(files('qapi-sysemu.c'))
+subdir('monitor')
+
+modules += {'block': block_modules}
diff --git a/block/monitor/Makefile.objs b/block/monitor/Makefile.objs
deleted file mode 100644
index 39acf85..0000000
--- a/block/monitor/Makefile.objs
+++ /dev/null
@@ -1,2 +0,0 @@
-common-obj-y += block-hmp-cmds.o
-block-obj-y += bitmap-qmp-cmds.o
diff --git a/block/monitor/meson.build b/block/monitor/meson.build
new file mode 100644
index 0000000..374aac1
--- /dev/null
+++ b/block/monitor/meson.build
@@ -0,0 +1,2 @@
+softmmu_ss.add(files('block-hmp-cmds.c'))
+block_ss.add(files('bitmap-qmp-cmds.c'))
diff --git a/configure b/configure
index f1a9824..200c5f7 100755
--- a/configure
+++ b/configure
@@ -2628,8 +2628,6 @@ if test "$zstd" != "no" ; then
     if $pkg_config --atleast-version=$libzstd_minver libzstd ; then
         zstd_cflags="$($pkg_config --cflags libzstd)"
         zstd_libs="$($pkg_config --libs libzstd)"
-        LIBS="$zstd_libs $LIBS"
-        QEMU_CFLAGS="$QEMU_CFLAGS $zstd_cflags"
         zstd="yes"
     else
         if test "$zstd" = "yes" ; then
@@ -4047,7 +4045,8 @@ if test "$zlib" != "no" ; then
 int main(void) { zlibVersion(); return 0; }
 EOF
         if compile_prog "" "-lz" ; then
-            LIBS="$LIBS -lz"
+            zlib_libs=-lz
+            LIBS="$LIBS $zlib_libs"
         else
             error_exit "zlib check failed" \
                 "Make sure to have the zlib libs and headers installed."
@@ -7324,7 +7323,11 @@ fi
 if test "$posix_memalign" = "yes" ; then
   echo "CONFIG_POSIX_MEMALIGN=y" >> $config_host_mak
 fi
-
+if test "$zlib" != "no" ; then
+    echo "CONFIG_ZLIB=y" >> $config_host_mak
+    echo "ZLIB_CFLAGS=$zlib_cflags" >> $config_host_mak
+    echo "ZLIB_LIBS=$zlib_libs" >> $config_host_mak
+fi
 if test "$spice" = "yes" ; then
   echo "CONFIG_SPICE=y" >> $config_host_mak
 fi
@@ -7394,6 +7397,8 @@ fi
 
 if test "$zstd" = "yes" ; then
   echo "CONFIG_ZSTD=y" >> $config_host_mak
+  echo "ZSTD_CFLAGS=$zstd_cflags" >> $config_host_mak
+  echo "ZSTD_LIBS=$zstd_libs" >> $config_host_mak
 fi
 
 if test "$libiscsi" = "yes" ; then
@@ -7426,7 +7431,6 @@ if test "$qom_cast_debug" = "yes" ; then
 fi
 if test "$rbd" = "yes" ; then
   echo "CONFIG_RBD=m" >> $config_host_mak
-  echo "RBD_CFLAGS=$rbd_cflags" >> $config_host_mak
   echo "RBD_LIBS=$rbd_libs" >> $config_host_mak
 fi
 
diff --git a/meson.build b/meson.build
index aa813a2..62ceb46 100644
--- a/meson.build
+++ b/meson.build
@@ -97,6 +97,26 @@ pam = not_found
 if 'CONFIG_AUTH_PAM' in config_host
   pam = cc.find_library('pam')
 endif
+libaio = cc.find_library('aio', required: false)
+zlib = not_found
+if 'CONFIG_ZLIB' in config_host
+  zlib = declare_dependency(compile_args: config_host['ZLIB_CFLAGS'].split(),
+                            link_args: config_host['ZLIB_LIBS'].split())
+endif
+linux_io_uring = not_found
+if 'CONFIG_LINUX_IO_URING' in config_host
+  linux_io_uring = declare_dependency(compile_args: config_host['LINUX_IO_URING_CFLAGS'].split(),
+                                      link_args: config_host['LINUX_IO_URING_LIBS'].split())
+endif
+libxml2 = not_found
+if 'CONFIG_LIBXML2' in config_host
+  libxml2 = declare_dependency(compile_args: config_host['LIBXML2_CFLAGS'].split(),
+                               link_args: config_host['LIBXML2_LIBS'].split())
+endif
+libnfs = not_found
+if 'CONFIG_LIBNFS' in config_host
+  libnfs = declare_dependency(link_args: config_host['LIBNFS_LIBS'].split())
+endif
 libattr = not_found
 if 'CONFIG_ATTR' in config_host
   libattr = declare_dependency(link_args: config_host['LIBATTR_LIBS'].split())
@@ -121,6 +141,11 @@ if 'CONFIG_LIBISCSI' in config_host
   libiscsi = declare_dependency(compile_args: config_host['LIBISCSI_CFLAGS'].split(),
                                 link_args: config_host['LIBISCSI_LIBS'].split())
 endif
+zstd = not_found
+if 'CONFIG_ZSTD' in config_host
+  zstd = declare_dependency(compile_args: config_host['ZSTD_CFLAGS'].split(),
+                            link_args: config_host['ZSTD_LIBS'].split())
+endif
 gbm = not_found
 if 'CONFIG_GBM' in config_host
   gbm = declare_dependency(compile_args: config_host['GBM_CFLAGS'].split(),
@@ -140,6 +165,28 @@ libudev = not_found
 if 'CONFIG_LIBUDEV' in config_host
   libudev = declare_dependency(link_args: config_host['LIBUDEV_LIBS'].split())
 endif
+rbd = not_found
+if 'CONFIG_RBD' in config_host
+  rbd = declare_dependency(link_args: config_host['RBD_LIBS'].split())
+endif
+glusterfs = not_found
+if 'CONFIG_GLUSTERFS' in config_host
+  glusterfs = declare_dependency(compile_args: config_host['GLUSTERFS_CFLAGS'].split(),
+                                 link_args: config_host['GLUSTERFS_LIBS'].split())
+endif
+libssh = not_found
+if 'CONFIG_LIBSSH' in config_host
+  libssh = declare_dependency(compile_args: config_host['LIBSSH_CFLAGS'].split(),
+                              link_args: config_host['LIBSSH_LIBS'].split())
+endif
+libbzip2 = not_found
+if 'CONFIG_BZIP2' in config_host
+  libbzip2 = declare_dependency(link_args: config_host['BZIP2_LIBS'].split())
+endif
+liblzfse = not_found
+if 'CONFIG_LZFSE' in config_host
+  liblzfse = declare_dependency(link_args: config_host['LZFSE_LIBS'].split())
+endif
 
 create_config = find_program('scripts/create_config')
 minikconf = find_program('scripts/minikconf.py')
@@ -446,6 +493,18 @@ subdir('chardev')
 subdir('fsdev')
 subdir('target')
 
+block_ss.add(files(
+  'block.c',
+  'blockjob.c',
+  'job.c',
+  'qemu-io-cmds.c',
+))
+block_ss.add(when: 'CONFIG_REPLICATION', if_true: files('replication.c'))
+
+subdir('nbd')
+subdir('scsi')
+subdir('block')
+
 mods = []
 block_mods = []
 softmmu_mods = []
@@ -480,6 +539,15 @@ qemu_syms = custom_target('qemu.syms', output: 'qemu.syms',
                              capture: true,
                              command: [undefsym, nm, '@INPUT@'])
 
+block_ss = block_ss.apply(config_host, strict: false)
+libblock = static_library('block', block_ss.sources(),
+                          dependencies: block_ss.dependencies(),
+                          link_depends: block_syms,
+                          name_suffix: 'fa',
+                          build_by_default: false)
+
+block = declare_dependency(link_whole: [libblock],
+                           link_args: '@block.syms')
 
 foreach m : mods
   shared_module(m['dir'] + '-' + m['name'],
diff --git a/nbd/Makefile.objs b/nbd/Makefile.objs
deleted file mode 100644
index eb3dd44..0000000
--- a/nbd/Makefile.objs
+++ /dev/null
@@ -1 +0,0 @@
-block-obj-y += server.o client.o common.o
diff --git a/nbd/meson.build b/nbd/meson.build
new file mode 100644
index 0000000..0c00a77
--- /dev/null
+++ b/nbd/meson.build
@@ -0,0 +1,5 @@
+block_ss.add(files(
+  'client.c',
+  'common.c',
+  'server.c',
+))
diff --git a/rules.mak b/rules.mak
index 9da9dcd..8285fe5 100644
--- a/rules.mak
+++ b/rules.mak
@@ -374,8 +374,7 @@ define unnest-vars
             # Find all the .mo objects in variables and add dependency rules
             # according to .mo-objs. Report error if not set
             $(if $($o-objs),
-                $(eval $(o:%.mo=%$(DSOSUF)): module-common.o $($o-objs)),
-                $(error $o added in $v but $o-objs is not set)))
+                $(eval $(o:%.mo=%$(DSOSUF)): module-common.o $($o-objs))))
         $(shell mkdir -p ./ $(sort $(dir $($v))))
         # Include all the .d files
         $(eval -include $(patsubst %.o,%.d,$(patsubst %.mo,%.d,$(filter %.o,$($v)))))
diff --git a/scsi/Makefile.objs b/scsi/Makefile.objs
deleted file mode 100644
index bb8789c..0000000
--- a/scsi/Makefile.objs
+++ /dev/null
@@ -1,4 +0,0 @@
-block-obj-y += utils.o
-
-block-obj-$(CONFIG_LINUX) += pr-manager.o pr-manager-helper.o
-block-obj-$(call lnot,$(CONFIG_LINUX)) += pr-manager-stub.o
diff --git a/scsi/meson.build b/scsi/meson.build
new file mode 100644
index 0000000..53f3a1f
--- /dev/null
+++ b/scsi/meson.build
@@ -0,0 +1,4 @@
+block_ss.add(files('utils.c'))
+block_ss.add(when: 'CONFIG_LINUX',
+             if_true: files('pr-manager.c', 'pr-manager-helper.c'),
+             if_false: files('pr-manager-stub.c'))
-- 
1.8.3.1




  parent reply	other threads:[~2020-08-10 17:39 UTC|newest]

Thread overview: 198+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-10 17:06 [PATCH 000/147] Meson integration for 5.2 Paolo Bonzini
2020-08-10 17:06 ` [PATCH 001/147] oss-fuzz/build: remove LIB_FUZZING_ENGINE Paolo Bonzini
2020-08-10 17:06 ` [PATCH 002/147] optionrom: simplify Makefile Paolo Bonzini
2020-08-10 17:06 ` [PATCH 003/147] pc-bios/s390-ccw: do not use rules.mak Paolo Bonzini
2020-08-11  9:43   ` Cornelia Huck
2020-08-10 17:06 ` [PATCH 004/147] trace: switch position of headers to what Meson requires Paolo Bonzini
2020-08-10 17:06 ` [PATCH 005/147] meson: rename .inc.c files to .inc Paolo Bonzini
2020-08-10 17:06 ` [PATCH 006/147] build-sys hack: ensure target directory is there Paolo Bonzini
2020-08-10 17:06 ` [PATCH 007/147] tests/vm: do not pollute configure with --efi-aarch64 Paolo Bonzini
2020-08-11 16:04   ` Philippe Mathieu-Daudé
2020-08-12 13:08   ` Robert Foley
2020-08-10 17:06 ` [PATCH 008/147] tests/vm: check for Python YAML parser in the Makefile Paolo Bonzini
2020-08-10 17:06 ` [PATCH 009/147] tests/docker: add test script for static linux-user builds Paolo Bonzini
2020-08-10 17:06 ` [PATCH 010/147] nsis: use "make DESTDIR=" instead of "make prefix=" Paolo Bonzini
2020-08-10 17:06 ` [PATCH 011/147] configure: do not include $(...) variables in config-host.mak Paolo Bonzini
2020-08-10 17:06 ` [PATCH 012/147] configure: expand path variables for meson configure Paolo Bonzini
2020-08-10 17:06 ` [PATCH 013/147] configure: prepare CFLAGS/CXXFLAGS/LDFLAGS for Meson Paolo Bonzini
2020-08-10 17:06 ` [PATCH 014/147] tests/vm: include setuptools Paolo Bonzini
2020-08-10 17:06 ` [PATCH 015/147] configure: integrate Meson in the build system Paolo Bonzini
2020-08-10 17:06 ` [PATCH 016/147] configure: generate Meson cross file Paolo Bonzini
2020-08-10 17:06 ` [PATCH 017/147] build-sys hack: link with whole .fa archives Paolo Bonzini
2020-08-10 17:06 ` [PATCH 018/147] build-sys: add meson submodule Paolo Bonzini
2020-08-10 17:06 ` [PATCH 019/147] meson: move summary to meson.build Paolo Bonzini
2020-08-10 17:06 ` [PATCH 020/147] meson: enable pie Paolo Bonzini
2020-08-10 17:06 ` [PATCH 021/147] meson: use coverage option Paolo Bonzini
2020-08-10 17:07 ` [PATCH 022/147] meson: add sparse support Paolo Bonzini
2020-08-10 17:07 ` [PATCH 023/147] meson: add testsuite Makefile generator Paolo Bonzini
2020-08-10 17:07 ` [PATCH 024/147] libqemuutil, qapi, trace: convert to meson Paolo Bonzini
2020-08-10 17:07 ` [PATCH 025/147] meson: add remaining generated tcg trace helpers Paolo Bonzini
2020-08-10 17:07 ` [PATCH 026/147] meson: add version.o Paolo Bonzini
2020-08-10 17:07 ` [PATCH 027/147] contrib/libvhost-user: convert to Meson Paolo Bonzini
2020-08-10 17:07 ` [PATCH 028/147] tools/virtiofsd: " Paolo Bonzini
2020-08-10 17:07 ` [PATCH 029/147] contrib/vhost-user-blk: " Paolo Bonzini
2020-08-10 17:07 ` [PATCH 030/147] contrib/vhost-user-scsi: " Paolo Bonzini
2020-08-10 17:07 ` [PATCH 031/147] contrib/rdmacm-mux: " Paolo Bonzini
2020-08-10 17:07 ` [PATCH 032/147] contrib/vhost-user-input: convert to meson Paolo Bonzini
2020-08-10 17:07 ` [PATCH 033/147] contrib/vhost-user-gpu: " Paolo Bonzini
2020-08-10 17:07 ` [PATCH 034/147] contrib/ivshmem: " Paolo Bonzini
2020-08-10 17:07 ` [PATCH 035/147] contrib/elf2dmp: " Paolo Bonzini
2020-08-10 17:07 ` [PATCH 036/147] meson: convert qemu-ga Paolo Bonzini
2020-08-10 17:07 ` [PATCH 037/147] meson: convert vss-win32 Paolo Bonzini
2020-08-10 17:07 ` [PATCH 038/147] meson: add msi generation Paolo Bonzini
2020-08-10 17:07 ` [PATCH 039/147] meson: convert dummy Windows qga/qemu-ga target Paolo Bonzini
2020-08-10 17:07 ` [PATCH 040/147] meson: add qemu-bridge-helper Paolo Bonzini
2020-08-10 17:07 ` [PATCH 041/147] meson: add qemu-keymap Paolo Bonzini
2020-08-10 17:07 ` [PATCH 042/147] meson: add qemu-edid Paolo Bonzini
2020-08-10 17:07 ` [PATCH 043/147] meson: add virtfs-proxy-helper Paolo Bonzini
2020-08-10 17:07 ` [PATCH 044/147] meson: keymap-gen Paolo Bonzini
2020-08-10 17:07 ` [PATCH 045/147] meson: generate qemu-version.h Paolo Bonzini
2020-08-10 17:07 ` [PATCH 046/147] meson: generate shader headers Paolo Bonzini
2020-08-10 17:07 ` [PATCH 047/147] meson: generate hxtool files Paolo Bonzini
2020-08-10 17:07 ` [PATCH 048/147] meson: handle edk2 bios and descriptors Paolo Bonzini
2020-08-10 17:07 ` [PATCH 049/147] meson: convert check-decodetree Paolo Bonzini
2020-08-10 17:07 ` [PATCH 050/147] meson: convert tests/fp and check-softfloat Paolo Bonzini
2020-08-10 17:07 ` [PATCH 051/147] meson: convert check-qapi-schema Paolo Bonzini
2020-08-10 17:07 ` [PATCH 052/147] meson: convert qom directory to Meson (tools part) Paolo Bonzini
2020-08-10 17:07 ` [PATCH 053/147] meson: convert authz directory to Meson Paolo Bonzini
2020-08-10 17:07 ` [PATCH 054/147] meson: convert crypto " Paolo Bonzini
2020-08-10 17:07 ` [PATCH 055/147] meson: convert io " Paolo Bonzini
2020-08-10 17:07 ` [PATCH 056/147] meson: convert target/s390x/gen-features.h Paolo Bonzini
2020-08-10 17:07 ` [PATCH 057/147] meson: infrastructure for building emulators Paolo Bonzini
2020-08-10 17:07 ` [PATCH 058/147] meson: add macos dependencies Paolo Bonzini
2020-08-10 17:07 ` [PATCH 059/147] meson: add modules infrastructure Paolo Bonzini
2020-08-10 17:07 ` [PATCH 060/147] meson: convert chardev directory to Meson (tools part) Paolo Bonzini
2020-08-10 17:07 ` Paolo Bonzini [this message]
2020-08-10 17:07 ` [PATCH 062/147] meson: qemu-{img,io,nbd} Paolo Bonzini
2020-08-10 17:07 ` [PATCH 063/147] meson: qemu-pr-helper Paolo Bonzini
2020-08-10 17:07 ` [PATCH 064/147] configure, Makefile; remove TOOLS and HELPERS-y variable Paolo Bonzini
2020-08-10 17:07 ` [PATCH 065/147] meson: convert chardev directory to Meson (emulator part) Paolo Bonzini
2020-08-10 17:07 ` [PATCH 066/147] meson: convert tests/qtest to meson Paolo Bonzini
2020-08-11 15:02   ` Alexander Bulekov
2020-08-10 17:07 ` [PATCH 067/147] meson: convert audio directory to Meson Paolo Bonzini
2020-08-10 17:07 ` [PATCH 068/147] meson: convert ui " Paolo Bonzini
2020-08-10 17:07 ` [PATCH 069/147] meson: convert root " Paolo Bonzini
2020-08-10 17:07 ` [PATCH 070/147] meson: convert most of softmmu/ Paolo Bonzini
2020-08-10 17:07 ` [PATCH 071/147] meson: convert trace/ Paolo Bonzini
2020-08-10 17:07 ` [PATCH 072/147] meson: convert dump/ Paolo Bonzini
2020-08-10 17:07 ` [PATCH 073/147] meson: convert common QMP bits for qemu and qemu-storage-daemon Paolo Bonzini
2020-08-10 17:07 ` [PATCH 074/147] meson: convert qemu-storage-daemon Paolo Bonzini
2020-08-10 17:07 ` [PATCH 075/147] meson: convert replay directory to Meson Paolo Bonzini
2020-08-10 17:07 ` [PATCH 076/147] meson: convert migration " Paolo Bonzini
2020-08-10 17:07 ` [PATCH 077/147] meson: convert net " Paolo Bonzini
2020-08-10 17:07 ` [PATCH 078/147] meson: convert backends " Paolo Bonzini
2020-08-10 17:07 ` [PATCH 079/147] meson: convert fsdev/ Paolo Bonzini
2020-08-10 17:07 ` [PATCH 080/147] meson: convert disas directory to Meson Paolo Bonzini
2020-08-10 17:07 ` [PATCH 081/147] meson: convert qapi-specific to meson Paolo Bonzini
2020-08-10 17:08 ` [PATCH 082/147] meson: convert hw/xen Paolo Bonzini
2020-08-10 17:08 ` [PATCH 083/147] meson: convert hw/core Paolo Bonzini
2020-08-10 17:08 ` [PATCH 084/147] meson: convert hw/semihosting Paolo Bonzini
2020-08-10 17:08 ` [PATCH 085/147] meson: convert hw/nubus Paolo Bonzini
2020-08-10 17:08 ` [PATCH 086/147] meson: convert hw/smbios Paolo Bonzini
2020-08-10 17:08 ` [PATCH 087/147] meson: convert hw/mem Paolo Bonzini
2020-08-10 17:08 ` [PATCH 088/147] meson: convert hw/watchdog Paolo Bonzini
2020-08-10 17:08 ` [PATCH 089/147] meson: convert hw/virtio Paolo Bonzini
2020-08-10 17:08 ` [PATCH 090/147] meson: convert hw/vfio Paolo Bonzini
2020-08-10 17:08 ` [PATCH 091/147] meson: convert hw/usb Paolo Bonzini
2020-08-10 17:08 ` [PATCH 092/147] meson: convert hw/tpm Paolo Bonzini
2020-08-10 17:08 ` [PATCH 093/147] meson: convert hw/timer Paolo Bonzini
2020-08-10 17:08 ` [PATCH 094/147] meson: convert hw/rtc Paolo Bonzini
2020-08-10 17:08 ` [PATCH 095/147] meson: convert hw/ssi Paolo Bonzini
2020-08-10 17:08 ` [PATCH 096/147] meson: convert hw/sd Paolo Bonzini
2020-08-11 16:06   ` Philippe Mathieu-Daudé
2020-08-10 17:08 ` [PATCH 097/147] meson: convert hw/scsi Paolo Bonzini
2020-08-10 17:08 ` [PATCH 098/147] meson: convert hw/pcmcia Paolo Bonzini
2020-08-10 17:08 ` [PATCH 099/147] meson: convert hw/pci-host Paolo Bonzini
2020-08-10 17:08 ` [PATCH 100/147] meson: convert hw/pci-bridge Paolo Bonzini
2020-08-10 17:08 ` [PATCH 101/147] meson: convert hw/pci Paolo Bonzini
2020-08-10 17:08 ` [PATCH 102/147] meson: convert hw/nvram Paolo Bonzini
2020-08-10 17:08 ` [PATCH 103/147] meson: convert hw/rdma Paolo Bonzini
2020-08-10 17:08 ` [PATCH 104/147] meson: convert hw/net Paolo Bonzini
2020-08-10 17:08 ` [PATCH 105/147] meson: convert hw/misc Paolo Bonzini
2020-08-10 17:08 ` [PATCH 106/147] meson: convert hw/isa Paolo Bonzini
2020-08-10 17:08 ` [PATCH 107/147] meson: convert hw/ipmi Paolo Bonzini
2020-08-10 17:08 ` [PATCH 108/147] meson: convert hw/ipack Paolo Bonzini
2020-08-10 17:08 ` [PATCH 109/147] meson: convert hw/intc Paolo Bonzini
2020-08-10 17:08 ` [PATCH 110/147] meson: convert hw/input Paolo Bonzini
2020-08-10 17:08 ` [PATCH 111/147] meson: convert hw/ide Paolo Bonzini
2020-08-10 17:08 ` [PATCH 112/147] meson: convert hw/i2c Paolo Bonzini
2020-08-10 17:08 ` [PATCH 113/147] meson: convert hw/hyperv Paolo Bonzini
2020-08-10 17:08 ` [PATCH 114/147] meson: convert hw/gpio Paolo Bonzini
2020-08-11 16:08   ` Philippe Mathieu-Daudé
2020-08-10 17:08 ` [PATCH 115/147] meson: convert hw/dma Paolo Bonzini
2020-08-10 17:08 ` [PATCH 116/147] meson: convert hw/display Paolo Bonzini
2020-08-10 17:08 ` [PATCH 117/147] meson: convert hw/cpu Paolo Bonzini
2020-08-10 17:08 ` [PATCH 118/147] meson: convert hw/char Paolo Bonzini
2020-08-10 17:08 ` [PATCH 119/147] meson: convert hw/block Paolo Bonzini
2020-08-10 17:08 ` [PATCH 120/147] meson: convert hw/audio Paolo Bonzini
2020-08-10 17:08 ` [PATCH 121/147] meson: convert hw/adc Paolo Bonzini
2020-08-10 17:08 ` [PATCH 122/147] meson: convert hw/acpi Paolo Bonzini
2020-08-10 17:08 ` [PATCH 123/147] meson: convert hw/9pfs, cleanup Paolo Bonzini
2020-08-10 17:08 ` [PATCH 124/147] meson: convert hw/arch* Paolo Bonzini
2020-08-10 17:08 ` [PATCH 125/147] meson: target Paolo Bonzini
2020-08-10 17:08 ` [PATCH 126/147] meson: accel Paolo Bonzini
2020-08-10 17:08 ` [PATCH 127/147] meson: linux-user Paolo Bonzini
2020-08-10 17:08 ` [PATCH 128/147] meson: bsd-user Paolo Bonzini
2020-08-10 17:08 ` [PATCH 129/147] meson: cpu-emu Paolo Bonzini
2020-08-10 17:08 ` [PATCH 130/147] meson: plugins Paolo Bonzini
2020-08-10 17:08 ` [PATCH 131/147] meson: link emulators without Makefile.target Paolo Bonzini
2020-08-11 14:59   ` Alexander Bulekov
2020-08-11 16:16     ` Philippe Mathieu-Daudé
2020-08-10 17:08 ` [PATCH 132/147] meson: convert systemtap files Paolo Bonzini
2020-08-10 17:08 ` [PATCH 133/147] rules.mak: remove version.o Paolo Bonzini
2020-08-10 17:08 ` [PATCH 134/147] remove Makefile.target Paolo Bonzini
2020-08-10 17:08 ` [PATCH 135/147] meson: sphinx-build Paolo Bonzini
2020-08-10 18:33   ` Peter Maydell
2020-08-10 19:06     ` Paolo Bonzini
2020-08-10 19:21       ` Peter Maydell
2020-08-10 19:31         ` Paolo Bonzini
2020-08-10 19:36           ` Peter Maydell
2020-08-10 19:45             ` Paolo Bonzini
2020-08-10 19:57               ` Peter Maydell
2020-08-10 20:05                 ` Paolo Bonzini
2020-08-11  9:24       ` Paolo Bonzini
2020-08-10 17:08 ` [PATCH 136/147] meson: build texi doc Paolo Bonzini
2020-08-10 17:08 ` [PATCH 137/147] meson: convert check-block Paolo Bonzini
2020-08-10 17:08 ` [PATCH 138/147] rules.mak: drop unneeded macros Paolo Bonzini
2020-08-10 17:08 ` [PATCH 139/147] meson: replace create-config with meson configure_file Paolo Bonzini
2020-08-11 16:20   ` Philippe Mathieu-Daudé
2020-08-11 16:25     ` Philippe Mathieu-Daudé
2020-08-11 17:12       ` Alexander Bulekov
2020-08-11 17:16         ` Paolo Bonzini
2020-08-11 17:25           ` Alexander Bulekov
2020-08-11 17:25       ` Paolo Bonzini
2020-08-10 17:08 ` [PATCH 140/147] meson: convert sample plugins Paolo Bonzini
2020-08-10 17:08 ` [PATCH 141/147] meson: move SDL and SDL-image detection to meson Paolo Bonzini
2020-08-10 17:09 ` [PATCH 142/147] meson: convert VNC and dependent libraries " Paolo Bonzini
2020-08-10 17:09 ` [PATCH 143/147] meson: convert po/ Paolo Bonzini
2020-08-10 17:09 ` [PATCH 144/147] meson: update build-system documentation Paolo Bonzini
2020-08-10 17:09 ` [PATCH 145/147] acceptance: use stable URLs for the Debian and Ubuntu installer Paolo Bonzini
2020-08-10 17:09 ` [PATCH 146/147] cflags Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Paolo Bonzini
2020-08-10 17:09 ` [PATCH 147/147] meson: avoid unstable module warning with Meson 0.56.0 or newer Paolo Bonzini
2020-08-10 18:09 ` [PATCH 000/147] Meson integration for 5.2 Peter Maydell
2020-08-10 18:14   ` Peter Maydell
2020-08-10 18:52     ` Paolo Bonzini
2020-08-10 18:20   ` Peter Maydell
2020-08-10 18:52     ` Paolo Bonzini
2020-08-10 19:11       ` Peter Maydell
2020-08-10 19:15     ` Paolo Bonzini
2020-08-10 19:16   ` Peter Maydell
2020-08-10 19:22     ` Paolo Bonzini
2020-08-10 19:26       ` Peter Maydell
2020-08-10 19:36         ` Paolo Bonzini
2020-08-10 19:45           ` Peter Maydell
2020-08-10 19:49             ` Paolo Bonzini
2020-08-10 19:55               ` Peter Maydell
2020-08-10 20:00                 ` Paolo Bonzini
2020-08-10 19:25   ` Paolo Bonzini
2020-08-10 19:27     ` Peter Maydell
2020-08-10 19:49       ` Paolo Bonzini
2020-08-11  9:41 ` Cornelia Huck
2020-08-11 11:38   ` Cornelia Huck
2020-08-11 12:04 ` Roman Bolshakov
2020-08-11 12:59   ` Paolo Bonzini
2020-08-11 14:21     ` Roman Bolshakov
2020-08-11 15:42 ` Stefano Garzarella
2020-08-12  6:32   ` Howard Spoelstra
2020-08-12 13:24     ` Philippe Mathieu-Daudé
2020-08-12 16:48       ` Howard Spoelstra

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=1597079345-42801-62-git-send-email-pbonzini@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).