From nobody Tue Dec 16 11:05:20 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1597081174; cv=none; d=zohomail.com; s=zohoarc; b=DrDcKQyWENO4iCKP1b+C2ZamFARLggYvo6jayKsGDq0DYIQz8FHqqmSitgw6Vuvz8UkzbrOQeMksabyEi1ZToZ2KzhZDdpbpVAMlF5m98RkjnA/x+h2b8lskE2qA+1wh9IiCLIAQwMSxZhh6fqPTE0pA4D9Po3DRp4Ghow9T9Jw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1597081174; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=zPnGwiSP/tv4kTK5Ft6rCKZAHIJsi9Mr9fNhw1HXMOE=; b=MFZ0tEsN0GU6hfCGUbYO7uOlJeFf0/5+raCX7FWONuqS8cAyunFNAhWuBkhQCUw7mWkWjqcnn+Hl6Tj84CLHvD5LZCGIP6SDL2A/d4Yc/P3NKDguPMd2gk71zPICFrD42t6ip+lKOBNX1+iHyjlRnHdIROP8Pzwp6r77oUXtEfo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1597081174853689.4026779517574; Mon, 10 Aug 2020 10:39:34 -0700 (PDT) Received: from localhost ([::1]:39414 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1k5Bll-0008Uq-IF for importer@patchew.org; Mon, 10 Aug 2020 13:39:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46000) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k5BK5-0000L8-5B for qemu-devel@nongnu.org; Mon, 10 Aug 2020 13:10:57 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:27671) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1k5BK2-00034g-3n for qemu-devel@nongnu.org; Mon, 10 Aug 2020 13:10:56 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-337-xgzOahT1Mcyv-_3z0zOpeg-1; Mon, 10 Aug 2020 13:10:50 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 4945B100CCC4 for ; Mon, 10 Aug 2020 17:10:49 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.110.7]) by smtp.corp.redhat.com (Postfix) with ESMTP id 55D565F1E9; Mon, 10 Aug 2020 17:10:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1597079453; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=zPnGwiSP/tv4kTK5Ft6rCKZAHIJsi9Mr9fNhw1HXMOE=; b=H2NFsj6oeWxUWZXP6PP7H7suAtG/p4JK/LasA397p39LBcBGF3xX3vqXcyaDf8UBMa6yLR cJlosPy9f4xRIN570sgHoBBz2GQAHSKdl2zRexO9r5udEKIaOiLDe4Tiua1PCUenxU4WRQ GABptINnUAtGB44KdMCAkx1Wi6/UO/o= X-MC-Unique: xgzOahT1Mcyv-_3z0zOpeg-1 From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PATCH 061/147] meson: convert block Date: Mon, 10 Aug 2020 19:07:39 +0200 Message-Id: <1597079345-42801-62-git-send-email-pbonzini@redhat.com> In-Reply-To: <1597079345-42801-1-git-send-email-pbonzini@redhat.com> References: <1597079345-42801-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=pbonzini@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=216.205.24.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/08/10 11:11:16 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @redhat.com) From: Marc-Andr=C3=A9 Lureau Signed-off-by: Marc-Andr=C3=A9 Lureau Signed-off-by: Paolo Bonzini --- 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 :=3D $(call lor,$(CONFIG_SOFTMMU),$(CONFIG_TOOLS)) =20 -generated-files-y +=3D module_block.h generated-files-y +=3D target/s390x/gen-features.h target/s390x/gen-features.h: Makefile.ninja =20 @@ -166,8 +165,6 @@ include $(SRC_PATH)/Makefile.objs endif =20 dummy :=3D $(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 +=3D -ludev -lmultipath -lmpathpersist endif =20 -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 ge= n-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 =3D authz/libauthz.fa authz/libauthz.fa-libs =3D $(if $(CONFIG_AUTH_PAM),-lpam) =20 -block-obj-y =3D block/ nbd/ scsi/ -block-obj-y +=3D block.o blockjob.o job.o -block-obj-y +=3D qemu-io-cmds.o -block-obj-$(CONFIG_REPLICATION) +=3D replication.o - -block-obj-m =3D block/ +block-obj-y +=3D libblock.fa + +libblock.fa-libs =3D $(ZSTD_LIBS) +libblock.fa-libs +=3D $(LIBNFS_LIBS) +libblock.fa-libs +=3D $(LIBISCSI_LIBS) +libblock.fa-libs +=3D $(CURL_LIBS) +libblock.fa-libs +=3D $(RBD_LIBS) +libblock.fa-libs +=3D $(GLUSTERFS_LIBS) +libblock.fa-libs +=3D $(VXHS_LIBS) +libblock.fa-libs +=3D $(LIBSSH_LIBS) +libblock.fa-libs +=3D $(BZIP2_LIBS) +libblock.fa-libs +=3D $(LZFSE_LIBS) +libblock.fa-libs +=3D $(if $(CONFIG_LINUX_AIO),-laio) +libblock.fa-libs +=3D $(LIBXML2_LIBS) =20 chardev-obj-y =3D chardev/libchardev.fa =20 @@ -40,7 +48,7 @@ storage-daemon-obj-$(CONFIG_POSIX) +=3D os-posix.o # single QEMU executable should support all CPUs and machines. =20 ifeq ($(CONFIG_SOFTMMU),y) -common-obj-y =3D blockdev.o blockdev-nbd.o block/ +common-obj-y =3D blockdev.o blockdev-nbd.o common-obj-y +=3D bootdevice.o iothread.o common-obj-y +=3D dump/ common-obj-y +=3D job-qmp.o @@ -55,6 +63,16 @@ common-obj-$(CONFIG_LINUX) +=3D fsdev/ common-obj-y +=3D accel/ common-obj-y +=3D migration/ =20 +common-obj-$(if $(CONFIG_CURL),m) +=3D block-curl$(DSOSUF) +common-obj-$(if $(CONFIG_GLUSTERFS),m) +=3D block-gluster$(DSOSUF) +common-obj-$(if $(CONFIG_LIBISCSI),m) +=3D block-iscsi$(DSOSUF) +common-obj-$(if $(CONFIG_LIBNFS),m) +=3D block-nfs$(DSOSUF) +common-obj-$(if $(CONFIG_LIBSSH),m) +=3D block-ssh$(DSOSUF) +common-obj-$(if $(CONFIG_RBD),m) +=3D block-rbd$(DSOSUF) + +common-obj-$(if $(CONFIG_LZFSE),m) +=3D block-dmg-lzfse$(DSOSUF) +common-obj-$(if $(and $(CONFIG_BZIP2),$(CONFIG_DMG)),m) +=3D block-dmg-bz2= $(DSOSUF) + common-obj-y +=3D audio/ common-obj-m +=3D audio/ common-obj-y +=3D 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 :=3D include $(SRC_PATH)/Makefile.objs dummy :=3D $(call fix-paths,../,, \ authz-obj-y \ + block-obj-y \ chardev-obj-y \ crypto-obj-y \ io-obj-y \ qom-obj-y) dummy :=3D $(call unnest-vars,.., \ - block-obj-y \ - block-obj-m \ common-obj-y \ common-obj-m) all-obj-y +=3D $(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 +=3D raw-format.o vmdk.o vpc.o -block-obj-$(CONFIG_QCOW1) +=3D qcow.o -block-obj-$(CONFIG_VDI) +=3D vdi.o -block-obj-$(CONFIG_CLOOP) +=3D cloop.o -block-obj-$(CONFIG_BOCHS) +=3D bochs.o -block-obj-$(CONFIG_VVFAT) +=3D vvfat.o -block-obj-$(CONFIG_DMG) +=3D dmg.o - -block-obj-y +=3D qcow2.o qcow2-refcount.o qcow2-cluster.o qcow2-snapshot.o= qcow2-cache.o qcow2-bitmap.o qcow2-threads.o -block-obj-$(CONFIG_QED) +=3D qed.o qed-l2-cache.o qed-table.o qed-cluster.o -block-obj-$(CONFIG_QED) +=3D qed-check.o -block-obj-y +=3D vhdx.o vhdx-endian.o vhdx-log.o -block-obj-y +=3D quorum.o -block-obj-y +=3D blkdebug.o blkverify.o blkreplay.o -block-obj-$(CONFIG_PARALLELS) +=3D parallels.o -block-obj-y +=3D blklogwrites.o -block-obj-y +=3D block-backend.o snapshot.o qapi.o -block-obj-$(CONFIG_WIN32) +=3D file-win32.o win32-aio.o -block-obj-$(CONFIG_POSIX) +=3D file-posix.o -block-obj-$(CONFIG_LINUX_AIO) +=3D linux-aio.o -block-obj-$(CONFIG_LINUX_IO_URING) +=3D io_uring.o -block-obj-y +=3D null.o mirror.o commit.o io.o create.o amend.o -block-obj-y +=3D throttle-groups.o -block-obj-$(CONFIG_LINUX) +=3D nvme.o - -block-obj-y +=3D nbd.o -block-obj-$(CONFIG_SHEEPDOG) +=3D sheepdog.o -block-obj-$(CONFIG_LIBISCSI) +=3D iscsi.o -block-obj-$(if $(CONFIG_LIBISCSI),y,n) +=3D iscsi-opts.o -block-obj-$(CONFIG_LIBNFS) +=3D nfs.o -block-obj-$(CONFIG_CURL) +=3D curl.o -block-obj-$(CONFIG_RBD) +=3D rbd.o -block-obj-$(CONFIG_GLUSTERFS) +=3D gluster.o -block-obj-$(CONFIG_LIBSSH) +=3D ssh.o -block-obj-y +=3D accounting.o dirty-bitmap.o -block-obj-y +=3D write-threshold.o -block-obj-y +=3D backup.o -block-obj-$(CONFIG_REPLICATION) +=3D replication.o -block-obj-y +=3D throttle.o copy-on-read.o -block-obj-y +=3D block-copy.o - -block-obj-y +=3D crypto.o - -block-obj-y +=3D aio_task.o -block-obj-y +=3D backup-top.o -block-obj-y +=3D filter-compress.o -common-obj-y +=3D monitor/ -block-obj-y +=3D monitor/ - -block-obj-y +=3D stream.o - -common-obj-y +=3D qapi-sysemu.o - -nfs.o-libs :=3D $(LIBNFS_LIBS) -iscsi.o-cflags :=3D $(LIBISCSI_CFLAGS) -iscsi.o-libs :=3D $(LIBISCSI_LIBS) -curl.o-cflags :=3D $(CURL_CFLAGS) -curl.o-libs :=3D $(CURL_LIBS) -rbd.o-cflags :=3D $(RBD_CFLAGS) -rbd.o-libs :=3D $(RBD_LIBS) -gluster.o-cflags :=3D $(GLUSTERFS_CFLAGS) -gluster.o-libs :=3D $(GLUSTERFS_LIBS) -ssh.o-cflags :=3D $(LIBSSH_CFLAGS) -ssh.o-libs :=3D $(LIBSSH_LIBS) -block-obj-dmg-bz2-$(CONFIG_BZIP2) +=3D dmg-bz2.o -block-obj-$(if $(CONFIG_DMG),m,n) +=3D $(block-obj-dmg-bz2-y) -dmg-bz2.o-libs :=3D $(BZIP2_LIBS) -block-obj-$(if $(CONFIG_LZFSE),m,n) +=3D dmg-lzfse.o -dmg-lzfse.o-libs :=3D $(LZFSE_LIBS) -qcow.o-libs :=3D -lz -linux-aio.o-libs :=3D -laio -io_uring.o-cflags :=3D $(LINUX_IO_URING_CFLAGS) -io_uring.o-libs :=3D $(LINUX_IO_URING_LIBS) -parallels.o-cflags :=3D $(LIBXML2_CFLAGS) -parallels.o-libs :=3D $(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('parallel= s.c')) +block_ss.add(when: 'CONFIG_WIN32', if_true: files('file-win32.c', 'win32-a= io.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: fil= es('io_uring.c')) + +block_modules =3D [] + +modsrc =3D [] +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 +=3D files(m[3]) + endif + block_modules +=3D [[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 +=3D [[m[1], files(m[3]), m[2]]] + endif + endforeach +endif + +module_block_py =3D find_program('../scripts/modules/module_block.py') +module_block_h =3D custom_target('module_block.h', + output: 'module_block.h', + input: modsrc, + command: [module_block_py, '@OUTPUT0@', mod= src]) +block_ss.add(module_block_h) + +block_ss.add(files('stream.c')) + +softmmu_ss.add(files('qapi-sysemu.c')) +subdir('monitor') + +modules +=3D {'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 +=3D block-hmp-cmds.o -block-obj-y +=3D 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" !=3D "no" ; then if $pkg_config --atleast-version=3D$libzstd_minver libzstd ; then zstd_cflags=3D"$($pkg_config --cflags libzstd)" zstd_libs=3D"$($pkg_config --libs libzstd)" - LIBS=3D"$zstd_libs $LIBS" - QEMU_CFLAGS=3D"$QEMU_CFLAGS $zstd_cflags" zstd=3D"yes" else if test "$zstd" =3D "yes" ; then @@ -4047,7 +4045,8 @@ if test "$zlib" !=3D "no" ; then int main(void) { zlibVersion(); return 0; } EOF if compile_prog "" "-lz" ; then - LIBS=3D"$LIBS -lz" + zlib_libs=3D-lz + LIBS=3D"$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" =3D "yes" ; then echo "CONFIG_POSIX_MEMALIGN=3Dy" >> $config_host_mak fi - +if test "$zlib" !=3D "no" ; then + echo "CONFIG_ZLIB=3Dy" >> $config_host_mak + echo "ZLIB_CFLAGS=3D$zlib_cflags" >> $config_host_mak + echo "ZLIB_LIBS=3D$zlib_libs" >> $config_host_mak +fi if test "$spice" =3D "yes" ; then echo "CONFIG_SPICE=3Dy" >> $config_host_mak fi @@ -7394,6 +7397,8 @@ fi =20 if test "$zstd" =3D "yes" ; then echo "CONFIG_ZSTD=3Dy" >> $config_host_mak + echo "ZSTD_CFLAGS=3D$zstd_cflags" >> $config_host_mak + echo "ZSTD_LIBS=3D$zstd_libs" >> $config_host_mak fi =20 if test "$libiscsi" =3D "yes" ; then @@ -7426,7 +7431,6 @@ if test "$qom_cast_debug" =3D "yes" ; then fi if test "$rbd" =3D "yes" ; then echo "CONFIG_RBD=3Dm" >> $config_host_mak - echo "RBD_CFLAGS=3D$rbd_cflags" >> $config_host_mak echo "RBD_LIBS=3D$rbd_libs" >> $config_host_mak fi =20 diff --git a/meson.build b/meson.build index aa813a2..62ceb46 100644 --- a/meson.build +++ b/meson.build @@ -97,6 +97,26 @@ pam =3D not_found if 'CONFIG_AUTH_PAM' in config_host pam =3D cc.find_library('pam') endif +libaio =3D cc.find_library('aio', required: false) +zlib =3D not_found +if 'CONFIG_ZLIB' in config_host + zlib =3D declare_dependency(compile_args: config_host['ZLIB_CFLAGS'].spl= it(), + link_args: config_host['ZLIB_LIBS'].split()) +endif +linux_io_uring =3D not_found +if 'CONFIG_LINUX_IO_URING' in config_host + linux_io_uring =3D declare_dependency(compile_args: config_host['LINUX_I= O_URING_CFLAGS'].split(), + link_args: config_host['LINUX_IO_URI= NG_LIBS'].split()) +endif +libxml2 =3D not_found +if 'CONFIG_LIBXML2' in config_host + libxml2 =3D declare_dependency(compile_args: config_host['LIBXML2_CFLAGS= '].split(), + link_args: config_host['LIBXML2_LIBS'].spli= t()) +endif +libnfs =3D not_found +if 'CONFIG_LIBNFS' in config_host + libnfs =3D declare_dependency(link_args: config_host['LIBNFS_LIBS'].spli= t()) +endif libattr =3D not_found if 'CONFIG_ATTR' in config_host libattr =3D declare_dependency(link_args: config_host['LIBATTR_LIBS'].sp= lit()) @@ -121,6 +141,11 @@ if 'CONFIG_LIBISCSI' in config_host libiscsi =3D declare_dependency(compile_args: config_host['LIBISCSI_CFLA= GS'].split(), link_args: config_host['LIBISCSI_LIBS'].sp= lit()) endif +zstd =3D not_found +if 'CONFIG_ZSTD' in config_host + zstd =3D declare_dependency(compile_args: config_host['ZSTD_CFLAGS'].spl= it(), + link_args: config_host['ZSTD_LIBS'].split()) +endif gbm =3D not_found if 'CONFIG_GBM' in config_host gbm =3D declare_dependency(compile_args: config_host['GBM_CFLAGS'].split= (), @@ -140,6 +165,28 @@ libudev =3D not_found if 'CONFIG_LIBUDEV' in config_host libudev =3D declare_dependency(link_args: config_host['LIBUDEV_LIBS'].sp= lit()) endif +rbd =3D not_found +if 'CONFIG_RBD' in config_host + rbd =3D declare_dependency(link_args: config_host['RBD_LIBS'].split()) +endif +glusterfs =3D not_found +if 'CONFIG_GLUSTERFS' in config_host + glusterfs =3D declare_dependency(compile_args: config_host['GLUSTERFS_CF= LAGS'].split(), + link_args: config_host['GLUSTERFS_LIBS'].= split()) +endif +libssh =3D not_found +if 'CONFIG_LIBSSH' in config_host + libssh =3D declare_dependency(compile_args: config_host['LIBSSH_CFLAGS']= .split(), + link_args: config_host['LIBSSH_LIBS'].split(= )) +endif +libbzip2 =3D not_found +if 'CONFIG_BZIP2' in config_host + libbzip2 =3D declare_dependency(link_args: config_host['BZIP2_LIBS'].spl= it()) +endif +liblzfse =3D not_found +if 'CONFIG_LZFSE' in config_host + liblzfse =3D declare_dependency(link_args: config_host['LZFSE_LIBS'].spl= it()) +endif =20 create_config =3D find_program('scripts/create_config') minikconf =3D find_program('scripts/minikconf.py') @@ -446,6 +493,18 @@ subdir('chardev') subdir('fsdev') subdir('target') =20 +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 =3D [] block_mods =3D [] softmmu_mods =3D [] @@ -480,6 +539,15 @@ qemu_syms =3D custom_target('qemu.syms', output: 'qemu= .syms', capture: true, command: [undefsym, nm, '@INPUT@']) =20 +block_ss =3D block_ss.apply(config_host, strict: false) +libblock =3D static_library('block', block_ss.sources(), + dependencies: block_ss.dependencies(), + link_depends: block_syms, + name_suffix: 'fa', + build_by_default: false) + +block =3D declare_dependency(link_whole: [libblock], + link_args: '@block.syms') =20 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 +=3D 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 rul= es # according to .mo-objs. Report error if not set $(if $($o-objs), - $(eval $(o:%.mo=3D%$(DSOSUF)): module-common.o $($o-objs)), - $(error $o added in $v but $o-objs is not set))) + $(eval $(o:%.mo=3D%$(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 +=3D utils.o - -block-obj-$(CONFIG_LINUX) +=3D pr-manager.o pr-manager-helper.o -block-obj-$(call lnot,$(CONFIG_LINUX)) +=3D 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')) --=20 1.8.3.1