From nobody Tue Dec 16 08:32:47 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=1597080181; cv=none; d=zohomail.com; s=zohoarc; b=ZKcRHoCn5k3KMSCcMrmWrSL83zpyDvJ4d4oaUV46RPLxzKDKds5GJ6NjI3t2sfrZ/twp7jTQfZp8m8+aQ0cVM544IiGteHmra9Bi0gC0in0uisKKOIOGwoEG0jcK59b0hdFQoDHOTKYt6g9n6lfVKxljMgcdr4BkJZ9rsuIeSBg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1597080181; h=Content-Type:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=mW3YzSgFQlvK+Z+qclDaFrs0tyYUSf4lyzzm5OaBbTs=; b=SZEqNd0nIvZ801uS/vV852hbnGRhJnIgBAMYHyATiIeUWdKHtmd4Cel29xiu1lgzL0gmFM5LQ4HYwK/wsyK5RalpwSEe7hgAiAROBSTy6uZYDy+60i+bq9Jg6iXNaTUaIkR/MS6eS283ghFaSBosl7j7ux/2uj1XxXenSuD2Jps= 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 1597080181514388.3589736458864; Mon, 10 Aug 2020 10:23:01 -0700 (PDT) Received: from localhost ([::1]:34410 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1k5BVk-00063k-5e for importer@patchew.org; Mon, 10 Aug 2020 13:23:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45334) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k5BJ6-0006XD-PM for qemu-devel@nongnu.org; Mon, 10 Aug 2020 13:09:56 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:37422) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1k5BJ2-0002m3-8O for qemu-devel@nongnu.org; Mon, 10 Aug 2020 13:09: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-138-JRnwRmn-M8KLj8a0adlYIw-1; Mon, 10 Aug 2020 13:09:49 -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 4AFF98064A9 for ; Mon, 10 Aug 2020 17:09:48 +0000 (UTC) Received: from 640k.localdomain.com (unknown [10.36.110.7]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8B9845F1EA for ; Mon, 10 Aug 2020 17:09:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1597079391; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:content-type:content-type:in-reply-to:in-reply-to: references:references; bh=mW3YzSgFQlvK+Z+qclDaFrs0tyYUSf4lyzzm5OaBbTs=; b=HNV0N5Q8cl8N7iqgrkLPp0nSyh7ZakPQLrSE+/XC2WktCS7Ls8uTXt5iIS/+ZQet6MOPcD zGp9a4I4BRnc5KUwktgqgO39yl6ZB8sxMzdVMa7bqj8tK0O2RQMBe5ssYRALzAVupoWh// XaNVvAl9Fem3ngHKca4tPL8os7t1ahU= X-MC-Unique: JRnwRmn-M8KLj8a0adlYIw-1 From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PATCH 024/147] libqemuutil, qapi, trace: convert to meson Date: Mon, 10 Aug 2020 19:07:02 +0200 Message-Id: <1597079345-42801-25-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> 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 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=63.128.21.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 13:09:25 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" This shows how to do some "computations" in meson.build using its array and dictionary data structures, and also a basic usage of the sourceset module for conditional compilation. Signed-off-by: Paolo Bonzini --- Makefile | 228 ++++++--------------------------= ---- Makefile.objs | 95 --------------- Makefile.target | 8 +- configure | 8 ++ crypto/Makefile.objs | 6 - crypto/meson.build | 11 ++ docs/devel/tracing.txt | 2 +- meson.build | 194 ++++++++++++++++++++++++++++++ qapi/Makefile.objs | 23 ---- qapi/meson.build | 120 +++++++++++++++++++ qobject/Makefile.objs | 3 - qobject/meson.build | 3 + rules.mak | 2 +- scripts/qapi-gen.py | 0 scripts/tracetool.py | 0 scripts/tracetool/backend/dtrace.py | 2 +- scripts/tracetool/backend/ust.py | 6 +- storage-daemon/Makefile.objs | 4 +- storage-daemon/meson.build | 1 + storage-daemon/qapi/Makefile.objs | 1 - storage-daemon/qapi/meson.build | 10 ++ stubs/Makefile.objs | 56 --------- stubs/meson.build | 50 ++++++++ trace/Makefile.objs | 51 -------- trace/meson.build | 76 ++++++++++++ util/Makefile.objs | 83 ------------- util/meson.build | 68 +++++++++++ 27 files changed, 586 insertions(+), 525 deletions(-) create mode 100644 crypto/meson.build create mode 100644 qapi/meson.build delete mode 100644 qobject/Makefile.objs create mode 100644 qobject/meson.build mode change 100755 =3D> 100644 scripts/qapi-gen.py mode change 100755 =3D> 100644 scripts/tracetool.py create mode 100644 storage-daemon/meson.build delete mode 100644 storage-daemon/qapi/Makefile.objs create mode 100644 storage-daemon/qapi/meson.build delete mode 100644 stubs/Makefile.objs create mode 100644 stubs/meson.build create mode 100644 trace/meson.build delete mode 100644 util/Makefile.objs create mode 100644 util/meson.build diff --git a/Makefile b/Makefile index 7d9d4e5..0811fd5 100644 --- a/Makefile +++ b/Makefile @@ -121,184 +121,60 @@ FULL_VERSION :=3D $(if $(QEMU_PKGVERSION),$(VERSION)= ($(QEMU_PKGVERSION)),$(VERSIO =20 generated-files-y =3D qemu-version.h config-host.h qemu-options.def =20 -GENERATED_QAPI_FILES =3D qapi/qapi-builtin-types.h qapi/qapi-builtin-types= .c -GENERATED_QAPI_FILES +=3D qapi/qapi-types.h qapi/qapi-types.c -GENERATED_QAPI_FILES +=3D $(QAPI_MODULES:%=3Dqapi/qapi-types-%.h) -GENERATED_QAPI_FILES +=3D $(QAPI_MODULES:%=3Dqapi/qapi-types-%.c) -GENERATED_QAPI_FILES +=3D qapi/qapi-builtin-visit.h qapi/qapi-builtin-visi= t.c -GENERATED_QAPI_FILES +=3D qapi/qapi-visit.h qapi/qapi-visit.c -GENERATED_QAPI_FILES +=3D $(QAPI_MODULES:%=3Dqapi/qapi-visit-%.h) -GENERATED_QAPI_FILES +=3D $(QAPI_MODULES:%=3Dqapi/qapi-visit-%.c) -GENERATED_QAPI_FILES +=3D qapi/qapi-init-commands.h qapi/qapi-init-command= s.c -GENERATED_QAPI_FILES +=3D qapi/qapi-commands.h qapi/qapi-commands.c -GENERATED_QAPI_FILES +=3D $(QAPI_MODULES:%=3Dqapi/qapi-commands-%.h) -GENERATED_QAPI_FILES +=3D $(QAPI_MODULES:%=3Dqapi/qapi-commands-%.c) -GENERATED_QAPI_FILES +=3D qapi/qapi-emit-events.h qapi/qapi-emit-events.c -GENERATED_QAPI_FILES +=3D qapi/qapi-events.h qapi/qapi-events.c -GENERATED_QAPI_FILES +=3D $(QAPI_MODULES:%=3Dqapi/qapi-events-%.h) -GENERATED_QAPI_FILES +=3D $(QAPI_MODULES:%=3Dqapi/qapi-events-%.c) -GENERATED_QAPI_FILES +=3D qapi/qapi-introspect.c qapi/qapi-introspect.h -GENERATED_QAPI_FILES +=3D qapi/qapi-doc.texi - -# The following list considers only the storage daemon main module. All ot= her -# modules are currently shared with the main schema, so we don't actually -# generate additional files. - -GENERATED_STORAGE_DAEMON_QAPI_FILES =3D storage-daemon/qapi/qapi-commands.h -GENERATED_STORAGE_DAEMON_QAPI_FILES +=3D storage-daemon/qapi/qapi-commands= .c -GENERATED_STORAGE_DAEMON_QAPI_FILES +=3D storage-daemon/qapi/qapi-emit-eve= nts.h -GENERATED_STORAGE_DAEMON_QAPI_FILES +=3D storage-daemon/qapi/qapi-emit-eve= nts.c -GENERATED_STORAGE_DAEMON_QAPI_FILES +=3D storage-daemon/qapi/qapi-events.h -GENERATED_STORAGE_DAEMON_QAPI_FILES +=3D storage-daemon/qapi/qapi-events.c -GENERATED_STORAGE_DAEMON_QAPI_FILES +=3D storage-daemon/qapi/qapi-init-com= mands.h -GENERATED_STORAGE_DAEMON_QAPI_FILES +=3D storage-daemon/qapi/qapi-init-com= mands.c -GENERATED_STORAGE_DAEMON_QAPI_FILES +=3D storage-daemon/qapi/qapi-introspe= ct.h -GENERATED_STORAGE_DAEMON_QAPI_FILES +=3D storage-daemon/qapi/qapi-introspe= ct.c -GENERATED_STORAGE_DAEMON_QAPI_FILES +=3D storage-daemon/qapi/qapi-types.h -GENERATED_STORAGE_DAEMON_QAPI_FILES +=3D storage-daemon/qapi/qapi-types.c -GENERATED_STORAGE_DAEMON_QAPI_FILES +=3D storage-daemon/qapi/qapi-visit.h -GENERATED_STORAGE_DAEMON_QAPI_FILES +=3D storage-daemon/qapi/qapi-visit.c -GENERATED_STORAGE_DAEMON_QAPI_FILES +=3D storage-daemon/qapi/qapi-doc.texi - -generated-files-y +=3D $(GENERATED_QAPI_FILES) -generated-files-y +=3D $(GENERATED_STORAGE_DAEMON_QAPI_FILES) - generated-files-y +=3D trace/generated-tcg-tracers.h =20 generated-files-y +=3D trace/generated-helpers-wrappers.h generated-files-y +=3D trace/generated-helpers.h generated-files-y +=3D trace/generated-helpers.c =20 -generated-files-$(CONFIG_TRACE_UST) +=3D trace-ust-all.h -generated-files-$(CONFIG_TRACE_UST) +=3D trace-ust-all.c - generated-files-y +=3D module_block.h =20 -TRACE_HEADERS =3D trace/trace-root.h -TRACE_SOURCES =3D trace/trace-root.c -TRACE_DTRACE =3D -ifdef CONFIG_TRACE_DTRACE -TRACE_HEADERS +=3D trace-dtrace-root.h $(trace-events-subdirs:%=3D%/trace-= dtrace.h) -TRACE_DTRACE +=3D trace-dtrace-root.dtrace $(trace-events-subdirs:%=3D%/tr= ace-dtrace.dtrace) -endif -ifdef CONFIG_TRACE_UST -TRACE_HEADERS +=3D trace-ust-root.h $(trace-events-subdirs:%=3D%/trace-ust= .h) -endif - -generated-files-y +=3D $(BUILD_DIR)/trace-events-all generated-files-y +=3D .git-submodule-status =20 -trace-group-name =3D $(shell dirname $1 | sed -e 's/[^a-zA-Z0-9]/_/g') -trace-group-suffix =3D $(shell echo $1 | sed -e 's/[^a-zA-Z0-9]/_/g') - tracetool-y =3D $(SRC_PATH)/scripts/tracetool.py tracetool-y +=3D $(shell find $(SRC_PATH)/scripts/tracetool -name "*.py") =20 -define __trace_rules -TRACE_HEADERS +=3D trace/trace-$2.h -TRACE_SOURCES +=3D trace/trace-$2.c -trace-obj-y +=3D trace/trace-$2.o -trace/trace-$2.h: trace/trace-$2.h-timestamp - @cmp $$< $$@ >/dev/null 2>&1 || cp $$< $$@ -trace/trace-$2.h-timestamp: $(SRC_PATH)/$1/trace-events $(tracetool-y) $(B= UILD_DIR)/config-host.mak - $(call quiet-command,$(TRACETOOL) \ - --group=3D$2 \ - --format=3Dh \ - --backends=3D$(TRACE_BACKENDS) \ - $$< > $$@,"GEN","$$(@:%-timestamp=3D%)") - -trace/trace-$2.c: trace/trace-$2.c-timestamp - @cmp $$< $$@ >/dev/null 2>&1 || cp $$< $$@ -trace/trace-$2.c-timestamp: $(SRC_PATH)/$1/trace-events $(tracetool-y) $(B= UILD_DIR)/config-host.mak - $(call quiet-command,$(TRACETOOL) \ - --group=3D$2 \ - --format=3Dc \ - --backends=3D$(TRACE_BACKENDS) \ - $$< > $$@,"GEN","$$(@:%-timestamp=3D%)") -endef - -%/trace-ust.h: %/trace-ust.h-timestamp +trace/generated-helpers-wrappers.h: trace/generated-helpers-wrappers.h-tim= estamp @cmp $< $@ >/dev/null 2>&1 || cp $< $@ -%/trace-ust.h-timestamp: $(SRC_PATH)/%/trace-events $(tracetool-y) $(BUILD= _DIR)/config-host.mak - $(call quiet-command,$(TRACETOOL) \ - --group=3D$(call trace-group-name,$@) \ - --format=3Dust-events-h \ - --backends=3D$(TRACE_BACKENDS) \ - $< > $@,"GEN","$(@:%-timestamp=3D%)") - -%/trace-dtrace.dtrace: %/trace-dtrace.dtrace-timestamp - @cmp $< $@ >/dev/null 2>&1 || cp $< $@ -%/trace-dtrace.dtrace-timestamp: $(SRC_PATH)/%/trace-events $(BUILD_DIR)/c= onfig-host.mak $(tracetool-y) - $(call quiet-command,$(TRACETOOL) \ - --group=3D$(call trace-group-name,$@) \ - --format=3Dd \ - --backends=3D$(TRACE_BACKENDS) \ - $< > $@,"GEN","$(@:%-timestamp=3D%)") - -%/trace-dtrace.h: %/trace-dtrace.dtrace $(tracetool-y) - $(call quiet-command,dtrace -o $@ -h -s $<, "GEN","$@") - -%/trace-dtrace.o: %/trace-dtrace.dtrace $(tracetool-y) - - -trace/trace-root.h: trace/trace-root.h-timestamp - @cmp $< $@ >/dev/null 2>&1 || cp $< $@ -trace/trace-root.h-timestamp: $(SRC_PATH)/trace-events $(tracetool-y) $(BU= ILD_DIR)/config-host.mak +trace/generated-helpers-wrappers.h-timestamp: $(SRC_PATH)/trace-events $(B= UILD_DIR)/config-host.mak $(tracetool-y) + @mkdir -p $(dir $@) $(call quiet-command,$(TRACETOOL) \ --group=3Droot \ - --format=3Dh \ - --backends=3D$(TRACE_BACKENDS) \ - $< > $@,"GEN","$(@:%-timestamp=3D%)") + --format=3Dtcg-helper-wrapper-h \ + --backend=3D$(TRACE_BACKENDS) \ + $< > $@,"GEN","$(patsubst %-timestamp,%,$@)") =20 -trace/trace-root.c: trace/trace-root.c-timestamp +trace/generated-helpers.h: trace/generated-helpers.h-timestamp @cmp $< $@ >/dev/null 2>&1 || cp $< $@ -trace/trace-root.c-timestamp: $(SRC_PATH)/trace-events $(tracetool-y) $(BU= ILD_DIR)/config-host.mak +trace/generated-helpers.h-timestamp: $(SRC_PATH)/trace-events $(BUILD_DIR)= /config-host.mak $(tracetool-y) + @mkdir -p $(dir $@) $(call quiet-command,$(TRACETOOL) \ --group=3Droot \ - --format=3Dc \ - --backends=3D$(TRACE_BACKENDS) \ - $< > $@,"GEN","$(@:%-timestamp=3D%)") + --format=3Dtcg-helper-h \ + --backend=3D$(TRACE_BACKENDS) \ + $< > $@,"GEN","$(patsubst %-timestamp,%,$@)") =20 -trace-ust-root.h: trace-ust-root.h-timestamp +trace/generated-helpers.c: trace/generated-helpers.c-timestamp @cmp $< $@ >/dev/null 2>&1 || cp $< $@ -trace-ust-root.h-timestamp: $(SRC_PATH)/trace-events $(tracetool-y) $(BUIL= D_DIR)/config-host.mak +trace/generated-helpers.c-timestamp: $(SRC_PATH)/trace-events $(BUILD_DIR)= /config-host.mak $(tracetool-y) + @mkdir -p $(dir $@) $(call quiet-command,$(TRACETOOL) \ --group=3Droot \ - --format=3Dust-events-h \ - --backends=3D$(TRACE_BACKENDS) \ - $< > $@,"GEN","$(@:%-timestamp=3D%)") - -trace-ust-all.h: trace-ust-all.h-timestamp - @cmp $< $@ >/dev/null 2>&1 || cp $< $@ -trace-ust-all.h-timestamp: $(trace-events-files) $(tracetool-y) $(BUILD_DI= R)/config-host.mak - $(call quiet-command,$(TRACETOOL) \ - --group=3Dall \ - --format=3Dust-events-h \ - --backends=3D$(TRACE_BACKENDS) \ - $(trace-events-files) > $@,"GEN","$(@:%-timestamp=3D%)") + --format=3Dtcg-helper-c \ + --backend=3D$(TRACE_BACKENDS) \ + $< > $@,"GEN","$(patsubst %-timestamp,%,$@)") =20 -trace-ust-all.c: trace-ust-all.c-timestamp - @cmp $< $@ >/dev/null 2>&1 || cp $< $@ -trace-ust-all.c-timestamp: $(trace-events-files) $(tracetool-y) $(BUILD_DI= R)/config-host.mak - $(call quiet-command,$(TRACETOOL) \ - --group=3Dall \ - --format=3Dust-events-c \ - --backends=3D$(TRACE_BACKENDS) \ - $(trace-events-files) > $@,"GEN","$(@:%-timestamp=3D%)") +trace/generated-helpers.o: trace/generated-helpers.c =20 -trace-dtrace-root.dtrace: trace-dtrace-root.dtrace-timestamp +trace/generated-tcg-tracers.h: trace/generated-tcg-tracers.h-timestamp @cmp $< $@ >/dev/null 2>&1 || cp $< $@ -trace-dtrace-root.dtrace-timestamp: $(SRC_PATH)/trace-events $(BUILD_DIR)/= config-host.mak $(tracetool-y) +trace/generated-tcg-tracers.h-timestamp: $(SRC_PATH)/trace-events $(BUILD_= DIR)/config-host.mak $(tracetool-y) + @mkdir -p $(dir $@) $(call quiet-command,$(TRACETOOL) \ --group=3Droot \ - --format=3Dd \ - --backends=3D$(TRACE_BACKENDS) \ - $< > $@,"GEN","$(@:%-timestamp=3D%)") - -trace-dtrace-root.h: trace-dtrace-root.dtrace - $(call quiet-command,dtrace -o $@ -h -s $<, "GEN","$@") - -trace-dtrace-root.o: trace-dtrace-root.dtrace + --format=3Dtcg-h \ + --backend=3D$(TRACE_BACKENDS) \ + $< > $@,"GEN","$(patsubst %-timestamp,%,$@)") =20 KEYCODEMAP_GEN =3D $(SRC_PATH)/ui/keycodemapdb/tools/keymap-gen KEYCODEMAP_CSV =3D $(SRC_PATH)/ui/keycodemapdb/data/keymaps.csv @@ -469,10 +345,8 @@ include $(SRC_PATH)/Makefile.objs endif =20 dummy :=3D $(call unnest-vars,, \ - stub-obj-y \ authz-obj-y \ chardev-obj-y \ - util-obj-y \ qga-obj-y \ elf2dmp-obj-y \ ivshmem-client-obj-y \ @@ -493,14 +367,7 @@ dummy :=3D $(call unnest-vars,, \ qom-obj-y \ io-obj-y \ common-obj-y \ - common-obj-m \ - trace-obj-y) - -dummy :=3D $(foreach DIR,$(trace-events-subdirs),$(eval $(call __trace_rul= es,$(DIR),$(call trace-group-suffix,$(DIR))))) - -generated-files-y +=3D $(TRACE_HEADERS) -generated-files-y +=3D $(TRACE_SOURCES) - + common-obj-m) =20 include $(SRC_PATH)/tests/Makefile.include =20 @@ -614,8 +481,7 @@ Makefile: $(version-obj-y) ###################################################################### # Build libraries =20 -libqemuutil.a: $(util-obj-y) $(trace-obj-y) $(stub-obj-y) -libvhost-user.a: $(libvhost-user-obj-y) $(util-obj-y) $(stub-obj-y) +libvhost-user.a: $(libvhost-user-obj-y) =20 ###################################################################### =20 @@ -678,27 +544,6 @@ qga/qapi-generated/qapi-gen-timestamp: $(SRC_PATH)/qga= /qapi-schema.json $(qapi-p "GEN","$(@:%-timestamp=3D%)") @>$@ =20 -qapi-modules =3D $(SRC_PATH)/qapi/qapi-schema.json \ - $(QAPI_MODULES:%=3D$(SRC_PATH)/qapi/%.json) - -$(GENERATED_QAPI_FILES): qapi-gen-timestamp ; -qapi-gen-timestamp: $(qapi-modules) $(qapi-py) - $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-gen.py \ - -o "qapi" -b $<, \ - "GEN","$(@:%-timestamp=3D%)") - @>$@ - -qapi-modules-storage-daemon =3D \ - $(SRC_PATH)/storage-daemon/qapi/qapi-schema.json \ - $(QAPI_MODULES_STORAGE_DAEMON:%=3D$(SRC_PATH)/qapi/%.json) - -$(GENERATED_STORAGE_DAEMON_QAPI_FILES): storage-daemon/qapi/qapi-gen-times= tamp ; -storage-daemon/qapi/qapi-gen-timestamp: $(qapi-modules-storage-daemon) $(q= api-py) - $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-gen.py \ - -o "storage-daemon/qapi" $<, \ - "GEN","$(@:%-timestamp=3D%)") - @>$@ - QGALIB_GEN=3D$(addprefix qga/qapi-generated/, qga-qapi-types.h qga-qapi-vi= sit.h qga-qapi-commands.h qga-qapi-init-commands.h) $(qga-obj-y): $(QGALIB_GEN) =20 @@ -736,9 +581,9 @@ ivshmem-client$(EXESUF): $(ivshmem-client-obj-y) $(COMM= ON_LDADDS) ivshmem-server$(EXESUF): $(ivshmem-server-obj-y) $(COMMON_LDADDS) $(call LINK, $^) endif -vhost-user-scsi$(EXESUF): $(vhost-user-scsi-obj-y) libvhost-user.a +vhost-user-scsi$(EXESUF): $(vhost-user-scsi-obj-y) libvhost-user.a $(COMMO= N_LDADDS) $(call LINK, $^) -vhost-user-blk$(EXESUF): $(vhost-user-blk-obj-y) libvhost-user.a +vhost-user-blk$(EXESUF): $(vhost-user-blk-obj-y) libvhost-user.a $(COMMON_= LDADDS) $(call LINK, $^) =20 rdmacm-mux$(EXESUF): LIBS +=3D "-libumad" @@ -751,12 +596,12 @@ virtiofsd$(EXESUF): $(virtiofsd-obj-y) libvhost-user.= a $(COMMON_LDADDS) $(call LINK, $^) endif =20 -vhost-user-gpu$(EXESUF): $(vhost-user-gpu-obj-y) $(libvhost-user-obj-y) li= bqemuutil.a +vhost-user-gpu$(EXESUF): $(vhost-user-gpu-obj-y) libvhost-user.a $(COMMON_= LDADDS) $(call LINK, $^) =20 ifdef CONFIG_VHOST_USER_INPUT ifdef CONFIG_LINUX -vhost-user-input$(EXESUF): $(vhost-user-input-obj-y) libvhost-user.a libqe= muutil.a +vhost-user-input$(EXESUF): $(vhost-user-input-obj-y) libvhost-user.a $(COM= MON_LDADDS) $(call LINK, $^) =20 # build by default, do not install @@ -784,9 +629,6 @@ clean: recurse-clean rm -f fsdev/*.pod scsi/*.pod rm -f qemu-img-cmds.h rm -f ui/shader/*-vert.h ui/shader/*-frag.h - @# May not be present in generated-files-y - rm -f trace/generated-tracers-dtrace.dtrace* - rm -f trace/generated-tracers-dtrace.h* rm -f $(foreach f,$(generated-files-y),$(f) $(f)-timestamp) rm -f qapi-gen-timestamp rm -f storage-daemon/qapi/qapi-gen-timestamp @@ -1013,7 +855,9 @@ endif set -e; for x in $(KEYMAPS); do \ $(INSTALL_DATA) $(SRC_PATH)/pc-bios/keymaps/$$x "$(DESTDIR)$(qemu_datadi= r)/keymaps"; \ done - $(INSTALL_DATA) $(BUILD_DIR)/trace-events-all "$(DESTDIR)$(qemu_datadir)/= trace-events-all" + for d in $(TARGET_DIRS); do \ + $(MAKE) $(SUBDIR_MAKEFLAGS) TARGET_DIR=3D$$d/ -C $$d $@ || exit 1 ; \ + done =20 # opengl shader programs ui/shader/%-vert.h: $(SRC_PATH)/ui/shader/%.vert $(SRC_PATH)/scripts/shade= rinclude.pl @@ -1224,10 +1068,6 @@ Makefile: $(generated-files-y) endif endif =20 -.SECONDARY: $(TRACE_HEADERS) $(TRACE_HEADERS:%=3D%-timestamp) \ - $(TRACE_SOURCES) $(TRACE_SOURCES:%=3D%-timestamp) \ - $(TRACE_DTRACE) $(TRACE_DTRACE:%=3D%-timestamp) - # Include automatically generated dependency files # Dependencies in Makefile.objs files come from our recursive subdir rules -include $(wildcard *.d tests/*.d) diff --git a/Makefile.objs b/Makefile.objs index 3823463..e5c9077 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -1,7 +1,5 @@ ####################################################################### # Common libraries for tools and emulators -stub-obj-y =3D stubs/ -util-obj-y =3D crypto/ util/ qobject/ qapi/ qom-obj-y =3D qom/ =20 ####################################################################### @@ -95,10 +93,6 @@ common-obj-y +=3D disas/ version-obj-$(CONFIG_WIN32) +=3D $(BUILD_DIR)/version.o =20 ###################################################################### -# tracing -util-obj-y +=3D trace/ - -###################################################################### # guest agent =20 # FIXME: a few definitions from qapi/qapi-types.o and @@ -123,92 +117,3 @@ vhost-user-gpu-obj-y =3D contrib/vhost-user-gpu/ virtiofsd-obj-y =3D tools/virtiofsd/ =20 ###################################################################### -trace-events-subdirs =3D -trace-events-subdirs +=3D accel/kvm -trace-events-subdirs +=3D accel/tcg -trace-events-subdirs +=3D backends -trace-events-subdirs +=3D backends/tpm -trace-events-subdirs +=3D crypto -trace-events-subdirs +=3D monitor -ifeq ($(CONFIG_USER_ONLY),y) -trace-events-subdirs +=3D linux-user -endif -ifeq ($(CONFIG_BLOCK),y) -trace-events-subdirs +=3D authz -trace-events-subdirs +=3D block -trace-events-subdirs +=3D io -trace-events-subdirs +=3D nbd -trace-events-subdirs +=3D scsi -endif -ifeq ($(CONFIG_SOFTMMU),y) -trace-events-subdirs +=3D audio -trace-events-subdirs +=3D chardev -trace-events-subdirs +=3D hw/9pfs -trace-events-subdirs +=3D hw/acpi -trace-events-subdirs +=3D hw/alpha -trace-events-subdirs +=3D hw/arm -trace-events-subdirs +=3D hw/audio -trace-events-subdirs +=3D hw/block -trace-events-subdirs +=3D hw/block/dataplane -trace-events-subdirs +=3D hw/char -trace-events-subdirs +=3D hw/dma -trace-events-subdirs +=3D hw/hppa -trace-events-subdirs +=3D hw/hyperv -trace-events-subdirs +=3D hw/i2c -trace-events-subdirs +=3D hw/i386 -trace-events-subdirs +=3D hw/i386/xen -trace-events-subdirs +=3D hw/ide -trace-events-subdirs +=3D hw/input -trace-events-subdirs +=3D hw/intc -trace-events-subdirs +=3D hw/isa -trace-events-subdirs +=3D hw/mem -trace-events-subdirs +=3D hw/mips -trace-events-subdirs +=3D hw/misc -trace-events-subdirs +=3D hw/misc/macio -trace-events-subdirs +=3D hw/net -trace-events-subdirs +=3D hw/nvram -trace-events-subdirs +=3D hw/pci -trace-events-subdirs +=3D hw/pci-host -trace-events-subdirs +=3D hw/ppc -trace-events-subdirs +=3D hw/rdma -trace-events-subdirs +=3D hw/rdma/vmw -trace-events-subdirs +=3D hw/rtc -trace-events-subdirs +=3D hw/s390x -trace-events-subdirs +=3D hw/scsi -trace-events-subdirs +=3D hw/sd -trace-events-subdirs +=3D hw/sparc -trace-events-subdirs +=3D hw/sparc64 -trace-events-subdirs +=3D hw/ssi -trace-events-subdirs +=3D hw/timer -trace-events-subdirs +=3D hw/tpm -trace-events-subdirs +=3D hw/usb -trace-events-subdirs +=3D hw/vfio -trace-events-subdirs +=3D hw/virtio -trace-events-subdirs +=3D hw/watchdog -trace-events-subdirs +=3D hw/xen -trace-events-subdirs +=3D hw/gpio -trace-events-subdirs +=3D hw/riscv -trace-events-subdirs +=3D migration -trace-events-subdirs +=3D net -trace-events-subdirs +=3D ui -endif -trace-events-subdirs +=3D hw/core -trace-events-subdirs +=3D hw/display -trace-events-subdirs +=3D qapi -trace-events-subdirs +=3D qom -trace-events-subdirs +=3D target/arm -trace-events-subdirs +=3D target/hppa -trace-events-subdirs +=3D target/i386 -trace-events-subdirs +=3D target/mips -trace-events-subdirs +=3D target/ppc -trace-events-subdirs +=3D target/riscv -trace-events-subdirs +=3D target/s390x -trace-events-subdirs +=3D target/sparc -trace-events-subdirs +=3D util - -trace-events-files =3D $(SRC_PATH)/trace-events $(trace-events-subdirs:%= =3D$(SRC_PATH)/%/trace-events) - -trace-obj-y =3D trace-root.o -trace-obj-$(CONFIG_TRACE_UST) +=3D trace-ust-all.o -trace-obj-$(CONFIG_TRACE_DTRACE) +=3D trace-dtrace-root.o -trace-obj-$(CONFIG_TRACE_DTRACE) +=3D $(trace-events-subdirs:%=3D%/trace-d= trace.o) diff --git a/Makefile.target b/Makefile.target index d61a6a9..0b32364 100644 --- a/Makefile.target +++ b/Makefile.target @@ -57,7 +57,7 @@ endif tracetool-y =3D $(SRC_PATH)/scripts/tracetool.py tracetool-y +=3D $(shell find $(SRC_PATH)/scripts/tracetool -name "*.py") =20 -$(QEMU_PROG).stp-installed: $(BUILD_DIR)/trace-events-all $(tracetool-y) +$(QEMU_PROG).stp-installed: $(BUILD_DIR)/trace/trace-events-all $(tracetoo= l-y) $(call quiet-command,$(TRACETOOL) \ --group=3Dall \ --format=3Dstap \ @@ -67,7 +67,7 @@ $(QEMU_PROG).stp-installed: $(BUILD_DIR)/trace-events-all= $(tracetool-y) --target-type=3D$(TARGET_TYPE) \ $< > $@,"GEN","$(TARGET_DIR)$(QEMU_PROG).stp-installed") =20 -$(QEMU_PROG).stp: $(BUILD_DIR)/trace-events-all $(tracetool-y) +$(QEMU_PROG).stp: $(BUILD_DIR)/trace/trace-events-all $(tracetool-y) $(call quiet-command,$(TRACETOOL) \ --group=3Dall \ --format=3Dstap \ @@ -77,7 +77,7 @@ $(QEMU_PROG).stp: $(BUILD_DIR)/trace-events-all $(traceto= ol-y) --target-type=3D$(TARGET_TYPE) \ $< > $@,"GEN","$(TARGET_DIR)$(QEMU_PROG).stp") =20 -$(QEMU_PROG)-simpletrace.stp: $(BUILD_DIR)/trace-events-all $(tracetool-y) +$(QEMU_PROG)-simpletrace.stp: $(BUILD_DIR)/trace/trace-events-all $(tracet= ool-y) $(call quiet-command,$(TRACETOOL) \ --group=3Dall \ --format=3Dsimpletrace-stap \ @@ -85,7 +85,7 @@ $(QEMU_PROG)-simpletrace.stp: $(BUILD_DIR)/trace-events-a= ll $(tracetool-y) --probe-prefix=3Dqemu.$(TARGET_TYPE).$(TARGET_NAME) \ $< > $@,"GEN","$(TARGET_DIR)$(QEMU_PROG)-simpletrace.stp") =20 -$(QEMU_PROG)-log.stp: $(BUILD_DIR)/trace-events-all $(tracetool-y) +$(QEMU_PROG)-log.stp: $(BUILD_DIR)/trace/trace-events-all $(tracetool-y) $(call quiet-command,$(TRACETOOL) \ --group=3Dall \ --format=3Dlog-stap \ diff --git a/configure b/configure index 53527f6..685bd28 100755 --- a/configure +++ b/configure @@ -7170,6 +7170,8 @@ fi echo "CONFIG_TLS_PRIORITY=3D\"$tls_priority\"" >> $config_host_mak if test "$gnutls" =3D "yes" ; then echo "CONFIG_GNUTLS=3Dy" >> $config_host_mak + echo "GNUTLS_CFLAGS=3D$gnutls_cflags" >> $config_host_mak + echo "GNUTLS_LIBS=3D$gnutls_libs" >> $config_host_mak fi if test "$gcrypt" =3D "yes" ; then echo "CONFIG_GCRYPT=3Dy" >> $config_host_mak @@ -7180,6 +7182,8 @@ fi if test "$nettle" =3D "yes" ; then echo "CONFIG_NETTLE=3Dy" >> $config_host_mak echo "CONFIG_NETTLE_VERSION_MAJOR=3D${nettle_version%%.*}" >> $config_ho= st_mak + echo "NETTLE_CFLAGS=3D$nettle_cflags" >> $config_host_mak + echo "NETTLE_LIBS=3D$nettle_libs" >> $config_host_mak fi if test "$qemu_private_xts" =3D "yes" ; then echo "CONFIG_QEMU_PRIVATE_XTS=3Dy" >> $config_host_mak @@ -7556,6 +7560,8 @@ if have_backend "log"; then fi if have_backend "ust"; then echo "CONFIG_TRACE_UST=3Dy" >> $config_host_mak + echo "LTTNG_UST_LIBS=3D$lttng_ust_libs" >> $config_host_mak + echo "URCU_BP_LIBS=3D$urcu_bp_libs" >> $config_host_mak fi if have_backend "dtrace"; then echo "CONFIG_TRACE_DTRACE=3Dy" >> $config_host_mak @@ -7781,6 +7787,8 @@ echo "CFLAGS_NOPIE=3D$CFLAGS_NOPIE" >> $config_host_m= ak echo "QEMU_CFLAGS=3D$QEMU_CFLAGS" >> $config_host_mak echo "QEMU_CXXFLAGS=3D$QEMU_CXXFLAGS" >> $config_host_mak echo "QEMU_INCLUDES=3D$QEMU_INCLUDES" >> $config_host_mak +echo "GLIB_CFLAGS=3D$glib_cflags" >> $config_host_mak +echo "GLIB_LIBS=3D$glib_libs" >> $config_host_mak if test "$sparse" =3D "yes" ; then echo "SPARSE_CFLAGS =3D -Wbitwise -Wno-transparent-union -Wno-old-initia= lizer -Wno-non-pointer-null" >> $config_host_mak fi diff --git a/crypto/Makefile.objs b/crypto/Makefile.objs index f1965b1..a988591 100644 --- a/crypto/Makefile.objs +++ b/crypto/Makefile.objs @@ -35,9 +35,3 @@ crypto-obj-$(CONFIG_QEMU_PRIVATE_XTS) +=3D xts.o crypto-obj-y +=3D block.o crypto-obj-y +=3D block-qcow.o crypto-obj-y +=3D block-luks.o - -util-obj-$(CONFIG_GCRYPT) +=3D random-gcrypt.o -util-obj-$(if $(CONFIG_GCRYPT),n,$(CONFIG_GNUTLS)) +=3D random-gnutls.o -util-obj-$(if $(CONFIG_GCRYPT),n,$(if $(CONFIG_GNUTLS),n,$(CONFIG_RNG_NONE= ))) +=3D random-none.o -util-obj-$(if $(CONFIG_GCRYPT),n,$(if $(CONFIG_GNUTLS),n,$(if $(CONFIG_RNG= _NONE),n,y))) +=3D random-platform.o -util-obj-y +=3D aes.o init.o diff --git a/crypto/meson.build b/crypto/meson.build new file mode 100644 index 0000000..1b24431 --- /dev/null +++ b/crypto/meson.build @@ -0,0 +1,11 @@ +util_ss.add(files('aes.c')) +util_ss.add(files('init.c')) +if 'CONFIG_GCRYPT' in config_host + util_ss.add(files('random-gcrypt.c')) +elif 'CONFIG_GNUTLS' in config_host + util_ss.add(files('random-gnutls.c'), gnutls) +elif 'CONFIG_RNG_NONE' in config_host + util_ss.add(files('random-none.c')) +else + util_ss.add(files('random-platform.c')) +endif diff --git a/docs/devel/tracing.txt b/docs/devel/tracing.txt index cb5f685..6144d99 100644 --- a/docs/devel/tracing.txt +++ b/docs/devel/tracing.txt @@ -60,7 +60,7 @@ general. It is strongly preferred that all events be decl= ared directly in the sub-directory that uses them. The only exception is where there are so= me shared trace events defined in the top level directory trace-events file. The top level directory generates trace files with a filename prefix of -"trace-root" instead of just "trace". This is to avoid ambiguity between +"trace/trace-root" instead of just "trace". This is to avoid ambiguity bet= ween a trace.h in the current directory, vs the top level directory. =20 =3D=3D=3D Using trace events =3D=3D=3D diff --git a/meson.build b/meson.build index e227b43..e1ea8ce 100644 --- a/meson.build +++ b/meson.build @@ -4,6 +4,9 @@ project('qemu', ['c', 'cpp'], meson_version: '>=3D0.55.0', =20 not_found =3D dependency('', required: false) keyval =3D import('unstable-keyval') +ss =3D import('sourceset') + +cc =3D meson.get_compiler('c') config_host =3D keyval.load(meson.current_build_dir() / 'config-host.mak') =20 add_project_arguments(config_host['QEMU_CFLAGS'].split(), @@ -39,6 +42,197 @@ supported_cpus =3D ['ppc', 'ppc64', 's390x', 'sparc64',= 'riscv32', 'riscv64', 'x86 cpu =3D host_machine.cpu_family() targetos =3D host_machine.system() =20 +m =3D cc.find_library('m', required: false) +util =3D cc.find_library('util', required: false) +socket =3D [] +if host_machine.system() =3D=3D 'windows' + socket =3D cc.find_library('ws2_32') +endif +glib =3D declare_dependency(compile_args: config_host['GLIB_CFLAGS'].split= (), + link_args: config_host['GLIB_LIBS'].split()) +gio =3D not_found +if 'CONFIG_GIO' in config_host + gio =3D declare_dependency(compile_args: config_host['GIO_CFLAGS'].split= (), + link_args: config_host['GIO_LIBS'].split()) +endif +lttng =3D not_found +if 'CONFIG_TRACE_UST' in config_host + lttng =3D declare_dependency(link_args: config_host['LTTNG_UST_LIBS'].sp= lit()) +endif +urcubp =3D not_found +if 'CONFIG_TRACE_UST' in config_host + urcubp =3D declare_dependency(link_args: config_host['URCU_BP_LIBS'].spl= it()) +endif +nettle =3D not_found +if 'CONFIG_NETTLE' in config_host + nettle =3D declare_dependency(compile_args: config_host['NETTLE_CFLAGS']= .split(), + link_args: config_host['NETTLE_LIBS'].split(= )) +endif +gnutls =3D not_found +if 'CONFIG_GNUTLS' in config_host + gnutls =3D declare_dependency(compile_args: config_host['GNUTLS_CFLAGS']= .split(), + link_args: config_host['GNUTLS_LIBS'].split(= )) +endif + +target_dirs =3D config_host['TARGET_DIRS'].split() +have_user =3D false +have_system =3D false +foreach target : target_dirs + have_user =3D have_user or target.endswith('-user') + have_system =3D have_system or target.endswith('-softmmu') +endforeach +have_tools =3D 'CONFIG_TOOLS' in config_host +have_block =3D have_system or have_tools + +# Generators + +qapi_gen =3D find_program('scripts/qapi-gen.py') +qapi_gen_depends =3D [ meson.source_root() / 'scripts/qapi/__init__.py', + meson.source_root() / 'scripts/qapi/commands.py', + meson.source_root() / 'scripts/qapi/common.py', + meson.source_root() / 'scripts/qapi/doc.py', + meson.source_root() / 'scripts/qapi/error.py', + meson.source_root() / 'scripts/qapi/events.py', + meson.source_root() / 'scripts/qapi/expr.py', + meson.source_root() / 'scripts/qapi/gen.py', + meson.source_root() / 'scripts/qapi/introspect.py', + meson.source_root() / 'scripts/qapi/parser.py', + meson.source_root() / 'scripts/qapi/schema.py', + meson.source_root() / 'scripts/qapi/source.py', + meson.source_root() / 'scripts/qapi/types.py', + meson.source_root() / 'scripts/qapi/visit.py', + meson.source_root() / 'scripts/qapi/common.py', + meson.source_root() / 'scripts/qapi/doc.py', + meson.source_root() / 'scripts/qapi-gen.py' +] + +tracetool =3D [ + find_program('scripts/tracetool.py'), + '--backend=3D' + config_host['TRACE_BACKENDS'] +] + +# Collect sourcesets. + +util_ss =3D ss.source_set() +stub_ss =3D ss.source_set() +trace_ss =3D ss.source_set() + +############### +# Trace files # +############### + +trace_events_subdirs =3D [ + 'accel/kvm', + 'accel/tcg', + 'crypto', + 'monitor', +] +if have_user + trace_events_subdirs +=3D [ 'linux-user' ] +endif +if have_block + trace_events_subdirs +=3D [ + 'authz', + 'block', + 'io', + 'nbd', + 'scsi', + ] +endif +if have_system + trace_events_subdirs +=3D [ + 'audio', + 'backends', + 'backends/tpm', + 'chardev', + 'hw/9pfs', + 'hw/acpi', + 'hw/alpha', + 'hw/arm', + 'hw/audio', + 'hw/block', + 'hw/block/dataplane', + 'hw/char', + 'hw/display', + 'hw/dma', + 'hw/hppa', + 'hw/hyperv', + 'hw/i2c', + 'hw/i386', + 'hw/i386/xen', + 'hw/ide', + 'hw/input', + 'hw/intc', + 'hw/isa', + 'hw/mem', + 'hw/mips', + 'hw/misc', + 'hw/misc/macio', + 'hw/net', + 'hw/nvram', + 'hw/pci', + 'hw/pci-host', + 'hw/ppc', + 'hw/rdma', + 'hw/rdma/vmw', + 'hw/rtc', + 'hw/s390x', + 'hw/scsi', + 'hw/sd', + 'hw/sparc', + 'hw/sparc64', + 'hw/ssi', + 'hw/timer', + 'hw/tpm', + 'hw/usb', + 'hw/vfio', + 'hw/virtio', + 'hw/watchdog', + 'hw/xen', + 'hw/gpio', + 'hw/riscv', + 'migration', + 'net', + 'ui', + ] +endif +trace_events_subdirs +=3D [ + 'hw/core', + 'qapi', + 'qom', + 'target/arm', + 'target/hppa', + 'target/i386', + 'target/mips', + 'target/ppc', + 'target/riscv', + 'target/s390x', + 'target/sparc', + 'util', +] + +genh =3D [] + +subdir('qapi') +subdir('qobject') +subdir('stubs') +subdir('trace') +subdir('util') +subdir('crypto') +subdir('storage-daemon') + +# Build targets from sourcesets + +stub_ss =3D stub_ss.apply(config_host, strict: false) + +util_ss.add_all(trace_ss) +util_ss =3D util_ss.apply(config_host, strict: false) +libqemuutil =3D static_library('qemuutil', + sources: util_ss.sources() + stub_ss.sources(= ) + genh, + dependencies: [util_ss.dependencies(), m, gli= b, socket]) +qemuutil =3D declare_dependency(link_with: libqemuutil, + sources: genh) + summary_info =3D {} summary_info +=3D {'Install prefix': config_host['prefix']} summary_info +=3D {'BIOS directory': config_host['qemu_datadir']} diff --git a/qapi/Makefile.objs b/qapi/Makefile.objs index 4673ab7..c0a31be 100644 --- a/qapi/Makefile.objs +++ b/qapi/Makefile.objs @@ -1,25 +1,4 @@ -util-obj-y =3D qapi-visit-core.o qapi-dealloc-visitor.o qobject-input-visi= tor.o -util-obj-y +=3D qobject-output-visitor.o qmp-registry.o qmp-dispatch.o -util-obj-y +=3D string-input-visitor.o string-output-visitor.o -util-obj-y +=3D opts-visitor.o qapi-clone-visitor.o -util-obj-y +=3D qmp-event.o -util-obj-y +=3D qapi-util.o - -QAPI_COMMON_MODULES =3D audio authz block-core block char common control c= rypto -QAPI_COMMON_MODULES +=3D dump error introspect job machine migration misc -QAPI_COMMON_MODULES +=3D net pragma qdev qom rdma rocker run-state sockets= tpm -QAPI_COMMON_MODULES +=3D trace transaction ui QAPI_TARGET_MODULES =3D machine-target misc-target -QAPI_MODULES =3D $(QAPI_COMMON_MODULES) $(QAPI_TARGET_MODULES) - -util-obj-y +=3D qapi-builtin-types.o -util-obj-y +=3D $(QAPI_COMMON_MODULES:%=3Dqapi-types-%.o) -util-obj-y +=3D qapi-builtin-visit.o -util-obj-y +=3D $(QAPI_COMMON_MODULES:%=3Dqapi-visit-%.o) -util-obj-y +=3D qapi-emit-events.o -util-obj-y +=3D $(QAPI_COMMON_MODULES:%=3Dqapi-events-%.o) - -common-obj-y =3D $(QAPI_COMMON_MODULES:%=3Dqapi-commands-%.o) =20 obj-y =3D qapi-introspect.o obj-y +=3D $(QAPI_TARGET_MODULES:%=3Dqapi-types-%.o) @@ -34,5 +13,3 @@ obj-y +=3D qapi-init-commands.o =20 QAPI_MODULES_STORAGE_DAEMON =3D block-core char common control crypto QAPI_MODULES_STORAGE_DAEMON +=3D introspect job qom sockets pragma transac= tion - -storage-daemon-obj-y +=3D $(QAPI_MODULES_STORAGE_DAEMON:%=3Dqapi-commands-= %.o) diff --git a/qapi/meson.build b/qapi/meson.build new file mode 100644 index 0000000..51d11ce --- /dev/null +++ b/qapi/meson.build @@ -0,0 +1,120 @@ +util_ss.add(files( + 'opts-visitor.c', + 'qapi-clone-visitor.c', + 'qapi-dealloc-visitor.c', + 'qapi-util.c', + 'qapi-visit-core.c', + 'qmp-dispatch.c', + 'qmp-event.c', + 'qmp-registry.c', + 'qobject-input-visitor.c', + 'qobject-output-visitor.c', + 'string-input-visitor.c', + 'string-output-visitor.c', +)) + +qapi_all_modules =3D [ + 'audio', + 'authz', + 'block-core', + 'block', + 'char', + 'common', + 'control', + 'crypto', + 'dump', + 'error', + 'introspect', + 'job', + 'machine', + 'machine-target', + 'migration', + 'misc', + 'misc-target', + 'net', + 'pragma', + 'qdev', + 'qom', + 'rdma', + 'rocker', + 'run-state', + 'sockets', + 'tpm', + 'trace', + 'transaction', + 'ui', +] + +qapi_storage_daemon_modules =3D [ + 'block-core', + 'char', + 'common', + 'control', + 'crypto', + 'introspect', + 'job', + 'qom', + 'sockets', + 'pragma', + 'transaction', +] + +qapi_nonmodule_outputs =3D [ + 'qapi-introspect.c', 'qapi-introspect.h', + 'qapi-types.c', 'qapi-types.h', + 'qapi-visit.h', 'qapi-visit.c', + 'qapi-commands.h', 'qapi-commands.c', + 'qapi-init-commands.h', 'qapi-init-commands.c', + 'qapi-events.h', 'qapi-events.c', +] + +# First build all sources +qapi_util_outputs =3D [ + 'qapi-builtin-types.c', 'qapi-builtin-visit.c', + 'qapi-emit-events.c', +] + +qapi_inputs =3D [] +qapi_specific_outputs =3D [] +foreach module : qapi_all_modules + qapi_inputs +=3D [ files(module + '.json') ] + qapi_module_outputs =3D [ + 'qapi-types-@0@.c'.format(module), + 'qapi-types-@0@.h'.format(module), + 'qapi-visit-@0@.c'.format(module), + 'qapi-visit-@0@.h'.format(module), + 'qapi-events-@0@.c'.format(module), + 'qapi-events-@0@.h'.format(module), + 'qapi-commands-@0@.c'.format(module), + 'qapi-commands-@0@.h'.format(module), + ] + if module.endswith('-target') + qapi_specific_outputs +=3D qapi_module_outputs + else + qapi_util_outputs +=3D qapi_module_outputs + endif +endforeach + +qapi_files =3D custom_target('shared QAPI source files', + output: qapi_util_outputs + qapi_specific_outputs + qapi_nonmodule_outpu= ts + ['qapi-doc.texi'], + input: [ files('qapi-schema.json') ], + command: [ qapi_gen, '-o', 'qapi', '-b', '@INPUT0@' ], + depend_files: [ qapi_inputs, qapi_gen_depends ]) + +# Now go through all the outputs and add them to the right sourceset. +# These loops must be synchronized with the output of the above custom tar= get. + +i =3D 0 +foreach output : qapi_util_outputs + if output.endswith('.h') + genh +=3D qapi_files[i] + endif + util_ss.add(qapi_files[i]) + i =3D i + 1 +endforeach + +# These are still handled by the Makefile +i +=3D qapi_nonmodule_outputs.length() +i +=3D qapi_specific_outputs.length() + +qapi_doc_texi =3D qapi_files[i] diff --git a/qobject/Makefile.objs b/qobject/Makefile.objs deleted file mode 100644 index 7b12c9c..0000000 --- a/qobject/Makefile.objs +++ /dev/null @@ -1,3 +0,0 @@ -util-obj-y =3D qnull.o qnum.o qstring.o qdict.o qlist.o qbool.o qlit.o -util-obj-y +=3D qjson.o qobject.o json-lexer.o json-streamer.o json-parser= .o -util-obj-y +=3D block-qdict.o diff --git a/qobject/meson.build b/qobject/meson.build new file mode 100644 index 0000000..bb63c06 --- /dev/null +++ b/qobject/meson.build @@ -0,0 +1,3 @@ +util_ss.add(files('qnull.c', 'qnum.c', 'qstring.c', 'qdict.c', 'qlist.c', = 'qbool.c', + 'qlit.c', 'qjson.c', 'qobject.c', 'json-lexer.c', 'json-streamer.c', 'js= on-parser.c', + 'block-qdict.c')) diff --git a/rules.mak b/rules.mak index 5ab42de..7aefd37 100644 --- a/rules.mak +++ b/rules.mak @@ -32,7 +32,7 @@ QEMU_DGFLAGS +=3D -MMD -MP -MT $@ -MF $(@D)/$(*F).d # dir, one absolute and the other relative to the compiler working # directory. These are the same for target-independent files, but # different for target-dependent ones. -QEMU_LOCAL_INCLUDES =3D -iquote $(BUILD_DIR)/$(@D) -iquote $(@D) +QEMU_LOCAL_INCLUDES =3D -iquote $(BUILD_DIR) -iquote $(BUILD_DIR)/$(@D) -i= quote $(@D) =20 WL_U :=3D -Wl,-u, find-symbols =3D $(if $1, $(sort $(shell $(NM) -P -g $1 | $2))) diff --git a/scripts/qapi-gen.py b/scripts/qapi-gen.py old mode 100755 new mode 100644 diff --git a/scripts/tracetool.py b/scripts/tracetool.py old mode 100755 new mode 100644 diff --git a/scripts/tracetool/backend/dtrace.py b/scripts/tracetool/backen= d/dtrace.py index fc0c8fc..e17edc9 100644 --- a/scripts/tracetool/backend/dtrace.py +++ b/scripts/tracetool/backend/dtrace.py @@ -38,7 +38,7 @@ def generate_h_begin(events, group): if group =3D=3D "root": header =3D "trace-dtrace-root.h" else: - header =3D "trace-dtrace.h" + header =3D "trace-dtrace-%s.h" % group =20 # Workaround for ust backend, which also includes and may # require SDT_USE_VARIADIC to be defined. If dtrace includes diff --git a/scripts/tracetool/backend/ust.py b/scripts/tracetool/backend/u= st.py index 6c0a5f8..c857516 100644 --- a/scripts/tracetool/backend/ust.py +++ b/scripts/tracetool/backend/ust.py @@ -19,11 +19,7 @@ PUBLIC =3D True =20 =20 def generate_h_begin(events, group): - if group =3D=3D "root": - header =3D "trace-ust-root.h" - else: - header =3D "trace-ust.h" - + header =3D 'trace-ust-' + group + '.h' out('#include ', '#include "%s"' % header, '', diff --git a/storage-daemon/Makefile.objs b/storage-daemon/Makefile.objs index cfe6bee..41c0d02 100644 --- a/storage-daemon/Makefile.objs +++ b/storage-daemon/Makefile.objs @@ -1 +1,3 @@ -storage-daemon-obj-y +=3D qapi/ +storage-daemon-obj-y =3D qapi/libqsd-qapi.fa + +qemu-storage-daemon.o: storage-daemon/qapi/qapi-commands.h storage-daemon/= qapi/qapi-init-commands.h diff --git a/storage-daemon/meson.build b/storage-daemon/meson.build new file mode 100644 index 0000000..35f8949 --- /dev/null +++ b/storage-daemon/meson.build @@ -0,0 +1 @@ +subdir('qapi') diff --git a/storage-daemon/qapi/Makefile.objs b/storage-daemon/qapi/Makefi= le.objs deleted file mode 100644 index 8a4b220..0000000 --- a/storage-daemon/qapi/Makefile.objs +++ /dev/null @@ -1 +0,0 @@ -storage-daemon-obj-y +=3D qapi-commands.o qapi-init-commands.o qapi-intros= pect.o diff --git a/storage-daemon/qapi/meson.build b/storage-daemon/qapi/meson.bu= ild new file mode 100644 index 0000000..a4e24f3 --- /dev/null +++ b/storage-daemon/qapi/meson.build @@ -0,0 +1,10 @@ +qsd_qapi_files =3D custom_target('QAPI files for qemu-storage-daemon', + output: qapi_nonmodule_outputs, + input: [ files('qapi-schema.json') ], + command: [ qapi_gen, '-o', 'storage-daemon/= qapi', '@INPUT@' ], + depend_files: [ qapi_inputs, qapi_gen_depen= ds ]) + +static_library('qsd-qapi', + qsd_qapi_files.to_list(), + name_suffix: 'fa', + build_by_default: false) diff --git a/stubs/Makefile.objs b/stubs/Makefile.objs deleted file mode 100644 index d42046a..0000000 --- a/stubs/Makefile.objs +++ /dev/null @@ -1,56 +0,0 @@ -stub-obj-y +=3D blk-commit-all.o -stub-obj-y +=3D cmos.o -stub-obj-y +=3D cpu-get-clock.o -stub-obj-y +=3D cpu-get-icount.o -stub-obj-y +=3D dump.o -stub-obj-y +=3D error-printf.o -stub-obj-y +=3D fdset.o -stub-obj-y +=3D gdbstub.o -stub-obj-y +=3D iothread-lock.o -stub-obj-y +=3D is-daemonized.o -stub-obj-y +=3D isa-bus.o -stub-obj-$(CONFIG_LINUX_AIO) +=3D linux-aio.o -stub-obj-$(CONFIG_LINUX_IO_URING) +=3D io_uring.o -stub-obj-y +=3D monitor-core.o -stub-obj-y +=3D notify-event.o -stub-obj-y +=3D pci-bus.o -stub-obj-y +=3D qmp_memory_device.o -stub-obj-y +=3D qtest.o -stub-obj-y +=3D ramfb.o -stub-obj-y +=3D replay.o -stub-obj-y +=3D runstate-check.o -stub-obj-$(CONFIG_SOFTMMU) +=3D semihost.o -stub-obj-y +=3D set-fd-handler.o -stub-obj-y +=3D sysbus.o -stub-obj-y +=3D tpm.o -stub-obj-y +=3D trace-control.o -stub-obj-y +=3D vmgenid.o -stub-obj-y +=3D vmstate.o -stub-obj-$(CONFIG_SOFTMMU) +=3D win32-kbd-hook.o - -####################################################################### -# code used by both qemu system emulation and qemu-img - -ifeq ($(call lor,$(CONFIG_SOFTMMU),$(CONFIG_TOOLS)),y) - -stub-obj-y +=3D arch_type.o -stub-obj-y +=3D bdrv-next-monitor-owned.o -stub-obj-y +=3D blockdev-close-all-bdrv-states.o -stub-obj-y +=3D change-state-handler.o -stub-obj-y +=3D clock-warp.o -stub-obj-y +=3D fd-register.o -stub-obj-y +=3D fw_cfg.o -stub-obj-y +=3D get-vm-name.o -stub-obj-y +=3D iothread.o -stub-obj-y +=3D machine-init-done.o -stub-obj-y +=3D migr-blocker.o -stub-obj-y +=3D monitor.o -stub-obj-y +=3D pci-host-piix.o -stub-obj-y +=3D ram-block.o -stub-obj-y +=3D replay-user.o -stub-obj-y +=3D target-get-monitor-def.o -stub-obj-y +=3D target-monitor-defs.o -stub-obj-y +=3D uuid.o -stub-obj-y +=3D vm-stop.o - -endif # CONFIG_SOFTMMU || CONFIG_TOOLS diff --git a/stubs/meson.build b/stubs/meson.build new file mode 100644 index 0000000..019bd79 --- /dev/null +++ b/stubs/meson.build @@ -0,0 +1,50 @@ +stub_ss.add(files('arch_type.c')) +stub_ss.add(files('bdrv-next-monitor-owned.c')) +stub_ss.add(files('blk-commit-all.c')) +stub_ss.add(files('blockdev-close-all-bdrv-states.c')) +stub_ss.add(files('change-state-handler.c')) +stub_ss.add(files('clock-warp.c')) +stub_ss.add(files('cmos.c')) +stub_ss.add(files('cpu-get-clock.c')) +stub_ss.add(files('cpu-get-icount.c')) +stub_ss.add(files('dump.c')) +stub_ss.add(files('error-printf.c')) +stub_ss.add(files('fd-register.c')) +stub_ss.add(files('fdset.c')) +stub_ss.add(files('fw_cfg.c')) +stub_ss.add(files('gdbstub.c')) +stub_ss.add(files('get-vm-name.c')) +stub_ss.add(when: 'CONFIG_LINUX_IO_URING', if_true: files('io_uring.c')) +stub_ss.add(files('iothread.c')) +stub_ss.add(files('iothread-lock.c')) +stub_ss.add(files('isa-bus.c')) +stub_ss.add(files('is-daemonized.c')) +stub_ss.add(when: 'CONFIG_LINUX_AIO', if_true: files('linux-aio.c')) +stub_ss.add(files('machine-init-done.c')) +stub_ss.add(files('migr-blocker.c')) +stub_ss.add(files('monitor.c')) +stub_ss.add(files('monitor-core.c')) +stub_ss.add(files('notify-event.c')) +stub_ss.add(files('pci-bus.c')) +stub_ss.add(files('pci-host-piix.c')) +stub_ss.add(files('qmp_memory_device.c')) +stub_ss.add(files('qtest.c')) +stub_ss.add(files('ram-block.c')) +stub_ss.add(files('ramfb.c')) +stub_ss.add(files('replay.c')) +stub_ss.add(files('replay-user.c')) +stub_ss.add(files('runstate-check.c')) +stub_ss.add(files('set-fd-handler.c')) +stub_ss.add(files('sysbus.c')) +stub_ss.add(files('target-get-monitor-def.c')) +stub_ss.add(files('target-monitor-defs.c')) +stub_ss.add(files('tpm.c')) +stub_ss.add(files('trace-control.c')) +stub_ss.add(files('uuid.c')) +stub_ss.add(files('vmgenid.c')) +stub_ss.add(files('vmstate.c')) +stub_ss.add(files('vm-stop.c')) +stub_ss.add(files('win32-kbd-hook.c')) +if have_system + stub_ss.add(files('semihost.c')) +endif diff --git a/trace/Makefile.objs b/trace/Makefile.objs index c544509..a429474 100644 --- a/trace/Makefile.objs +++ b/trace/Makefile.objs @@ -1,59 +1,8 @@ # -*- mode: makefile -*- =20 -$(BUILD_DIR)/trace-events-all: $(trace-events-files) - $(call quiet-command,cat $^ > $@) - =20 ################################################## # Translation level =20 -$(obj)/generated-helpers-wrappers.h: $(obj)/generated-helpers-wrappers.h-t= imestamp - @cmp $< $@ >/dev/null 2>&1 || cp $< $@ -$(obj)/generated-helpers-wrappers.h-timestamp: $(SRC_PATH)/trace-events $(= BUILD_DIR)/config-host.mak $(tracetool-y) - $(call quiet-command,$(TRACETOOL) \ - --group=3Droot \ - --format=3Dtcg-helper-wrapper-h \ - --backend=3D$(TRACE_BACKENDS) \ - $< > $@,"GEN","$(patsubst %-timestamp,%,$@)") - -$(obj)/generated-helpers.h: $(obj)/generated-helpers.h-timestamp - @cmp $< $@ >/dev/null 2>&1 || cp $< $@ -$(obj)/generated-helpers.h-timestamp: $(SRC_PATH)/trace-events $(BUILD_DIR= )/config-host.mak $(tracetool-y) - $(call quiet-command,$(TRACETOOL) \ - --group=3Droot \ - --format=3Dtcg-helper-h \ - --backend=3D$(TRACE_BACKENDS) \ - $< > $@,"GEN","$(patsubst %-timestamp,%,$@)") - -$(obj)/generated-helpers.c: $(obj)/generated-helpers.c-timestamp - @cmp $< $@ >/dev/null 2>&1 || cp $< $@ -$(obj)/generated-helpers.c-timestamp: $(SRC_PATH)/trace-events $(BUILD_DIR= )/config-host.mak $(tracetool-y) - $(call quiet-command,$(TRACETOOL) \ - --group=3Droot \ - --format=3Dtcg-helper-c \ - --backend=3D$(TRACE_BACKENDS) \ - $< > $@,"GEN","$(patsubst %-timestamp,%,$@)") - -$(obj)/generated-helpers.o: $(obj)/generated-helpers.c - obj-y +=3D generated-helpers.o - - -$(obj)/generated-tcg-tracers.h: $(obj)/generated-tcg-tracers.h-timestamp - @cmp $< $@ >/dev/null 2>&1 || cp $< $@ -$(obj)/generated-tcg-tracers.h-timestamp: $(SRC_PATH)/trace-events $(BUILD= _DIR)/config-host.mak $(tracetool-y) - $(call quiet-command,$(TRACETOOL) \ - --group=3Droot \ - --format=3Dtcg-h \ - --backend=3D$(TRACE_BACKENDS) \ - $< > $@,"GEN","$(patsubst %-timestamp,%,$@)") - - -###################################################################### -# Backend code - -util-obj-$(CONFIG_TRACE_SIMPLE) +=3D simple.o -util-obj-$(CONFIG_TRACE_FTRACE) +=3D ftrace.o -util-obj-y +=3D control.o obj-y +=3D control-target.o -util-obj-y +=3D qmp.o diff --git a/trace/meson.build b/trace/meson.build new file mode 100644 index 0000000..f0a8d1c --- /dev/null +++ b/trace/meson.build @@ -0,0 +1,76 @@ +trace_events_files =3D [] +foreach dir : [ '.' ] + trace_events_subdirs + trace_events_file =3D meson.source_root() / dir / 'trace-events' + trace_events_files +=3D [ trace_events_file ] + group_name =3D dir =3D=3D '.' ? 'root' : dir.underscorify() + group =3D '--group=3D' + group_name + fmt =3D '@0@-' + group_name + '.@1@' + + trace_h =3D custom_target(fmt.format('trace', 'h'), + output: fmt.format('trace', 'h'), + input: trace_events_file, + command: [ tracetool, group, '--format=3Dh', '@I= NPUT@' ], + capture: true) + genh +=3D trace_h + trace_c =3D custom_target(fmt.format('trace', 'c'), + output: fmt.format('trace', 'c'), + input: trace_events_file, + command: [ tracetool, group, '--format=3Dc', '@I= NPUT@' ], + capture: true) + if 'CONFIG_TRACE_UST' in config_host + trace_ust_h =3D custom_target(fmt.format('trace-ust', 'h'), + output: fmt.format('trace-ust', 'h'), + input: trace_events_file, + command: [ tracetool, group, '--format=3Du= st-events-h', '@INPUT@' ], + capture: true) + trace_ss.add(trace_ust_h, lttng, urcubp) + genh +=3D trace_ust_h + endif + trace_ss.add(trace_h, trace_c) + if 'CONFIG_TRACE_DTRACE' in config_host + trace_dtrace =3D custom_target(fmt.format('trace-dtrace', 'dtrace'), + output: fmt.format('trace-dtrace', 'dtrac= e'), + input: trace_events_file, + command: [ tracetool, group, '--format=3D= d', '@INPUT@' ], + capture: true) + trace_dtrace_h =3D custom_target(fmt.format('trace-dtrace', 'h'), + output: fmt.format('trace-dtrace', 'h'), + input: trace_dtrace, + command: [ 'dtrace', '-o', '@OUTPUT@', = '-h', '-s', '@INPUT@' ]) + trace_dtrace_o =3D custom_target(fmt.format('trace-dtrace', 'o'), + output: fmt.format('trace-dtrace', 'o'), + input: trace_dtrace, + command: [ 'dtrace', '-o', '@OUTPUT@', = '-G', '-s', '@INPUT@' ]) + + trace_ss.add(trace_dtrace_h, trace_dtrace_o) + genh +=3D trace_dtrace_h + endif +endforeach + +custom_target('trace-events-all', + output: 'trace-events-all', + input: trace_events_files, + command: [ 'cat', '@INPUT@' ], + capture: true, + install: true, + install_dir: config_host['qemu_datadir']) + +if 'CONFIG_TRACE_UST' in config_host + trace_ust_all_h =3D custom_target('trace-ust-all.h', + output: 'trace-ust-all.h', + input: trace_events_files, + command: [ tracetool, '--group=3Dall', '= --format=3Dust-events-h', '@INPUT@' ], + capture: true) + trace_ust_all_c =3D custom_target('trace-ust-all.c', + output: 'trace-ust-all.c', + input: trace_events_files, + command: [ tracetool, '--group=3Dall', '= --format=3Dust-events-c', '@INPUT@' ], + capture: true) + trace_ss.add(trace_ust_all_h, trace_ust_all_c) + genh +=3D trace_ust_all_h +endif + +trace_ss.add(when: 'CONFIG_TRACE_SIMPLE', if_true: files('simple.c')) +trace_ss.add(when: 'CONFIG_TRACE_FTRACE', if_true: files('ftrace.c')) +trace_ss.add(files('control.c')) +trace_ss.add(files('qmp.c')) diff --git a/util/Makefile.objs b/util/Makefile.objs deleted file mode 100644 index cc5e371..0000000 --- a/util/Makefile.objs +++ /dev/null @@ -1,83 +0,0 @@ -util-obj-y =3D osdep.o cutils.o unicode.o qemu-timer-common.o -util-obj-$(call lnot,$(CONFIG_ATOMIC64)) +=3D atomic64.o -util-obj-$(CONFIG_POSIX) +=3D aio-posix.o -util-obj-$(CONFIG_POSIX) +=3D fdmon-poll.o -util-obj-$(CONFIG_EPOLL_CREATE1) +=3D fdmon-epoll.o -util-obj-$(CONFIG_LINUX_IO_URING) +=3D fdmon-io_uring.o -util-obj-$(CONFIG_POSIX) +=3D compatfd.o -util-obj-$(CONFIG_POSIX) +=3D event_notifier-posix.o -util-obj-$(CONFIG_POSIX) +=3D mmap-alloc.o -util-obj-$(CONFIG_POSIX) +=3D oslib-posix.o -util-obj-$(CONFIG_POSIX) +=3D qemu-openpty.o -util-obj-$(CONFIG_POSIX) +=3D qemu-thread-posix.o -util-obj-$(CONFIG_POSIX) +=3D memfd.o -util-obj-$(CONFIG_WIN32) +=3D aio-win32.o -util-obj-$(CONFIG_WIN32) +=3D event_notifier-win32.o -util-obj-$(CONFIG_WIN32) +=3D oslib-win32.o -util-obj-$(CONFIG_WIN32) +=3D qemu-thread-win32.o -util-obj-y +=3D envlist.o path.o module.o -util-obj-y +=3D host-utils.o -util-obj-y +=3D bitmap.o bitops.o -util-obj-y +=3D fifo8.o -util-obj-y +=3D cacheinfo.o -util-obj-y +=3D error.o qemu-error.o -util-obj-y +=3D qemu-print.o -util-obj-y +=3D id.o -util-obj-y +=3D qemu-config.o notify.o -util-obj-y +=3D qemu-option.o qemu-progress.o -util-obj-y +=3D keyval.o -util-obj-y +=3D crc32c.o -util-obj-y +=3D uuid.o -util-obj-y +=3D getauxval.o -util-obj-y +=3D rcu.o -util-obj-$(CONFIG_MEMBARRIER) +=3D sys_membarrier.o -util-obj-y +=3D log.o -util-obj-y +=3D pagesize.o -util-obj-y +=3D qdist.o -util-obj-y +=3D qht.o -util-obj-y +=3D qsp.o -util-obj-y +=3D range.o -util-obj-y +=3D stats64.o -util-obj-y +=3D systemd.o -util-obj-$(CONFIG_POSIX) +=3D drm.o -util-obj-y +=3D guest-random.o -util-obj-$(CONFIG_GIO) +=3D dbus.o -dbus.o-cflags =3D $(GIO_CFLAGS) -dbus.o-libs =3D $(GIO_LIBS) -util-obj-$(CONFIG_USER_ONLY) +=3D selfmap.o - -####################################################################### -# code used by both qemu system emulation and qemu-img - -ifeq ($(call lor,$(CONFIG_SOFTMMU),$(CONFIG_TOOLS)),y) - -util-obj-y +=3D aio-wait.o -util-obj-y +=3D aiocb.o -util-obj-y +=3D async.o -util-obj-y +=3D base64.o -util-obj-y +=3D buffer.o -util-obj-y +=3D bufferiszero.o -util-obj-y +=3D coroutine-$(CONFIG_COROUTINE_BACKEND).o -util-obj-y +=3D hexdump.o -util-obj-y +=3D lockcnt.o -util-obj-y +=3D iov.o -util-obj-y +=3D iova-tree.o -util-obj-y +=3D hbitmap.o -util-obj-y +=3D main-loop.o -util-obj-y +=3D nvdimm-utils.o -util-obj-y +=3D qemu-coroutine.o qemu-coroutine-lock.o qemu-coroutine-io.o -util-obj-y +=3D qemu-coroutine-sleep.o -util-obj-y +=3D qemu-co-shared-resource.o -util-obj-y +=3D qemu-sockets.o -util-obj-y +=3D qemu-timer.o -util-obj-y +=3D thread-pool.o -util-obj-y +=3D throttle.o -util-obj-y +=3D timed-average.o -util-obj-y +=3D uri.o - -util-obj-$(CONFIG_LINUX) +=3D vfio-helpers.o -util-obj-$(CONFIG_INOTIFY1) +=3D filemonitor-inotify.o -util-obj-$(call lnot,$(CONFIG_INOTIFY1)) +=3D filemonitor-stub.o -util-obj-$(CONFIG_BLOCK) +=3D readline.o - -endif # CONFIG_SOFTMMU || CONFIG_TOOLS diff --git a/util/meson.build b/util/meson.build new file mode 100644 index 0000000..62113ba --- /dev/null +++ b/util/meson.build @@ -0,0 +1,68 @@ +util_ss.add(files('osdep.c', 'cutils.c', 'unicode.c', 'qemu-timer-common.c= ')) +util_ss.add(files('bufferiszero.c')) +util_ss.add(files('lockcnt.c')) +util_ss.add(files('aiocb.c', 'async.c', 'aio-wait.c', 'thread-pool.c', 'qe= mu-timer.c')) +util_ss.add(files('main-loop.c')) +util_ss.add(when: 'CONFIG_ATOMIC64', if_false: files('atomic64.c')) +util_ss.add(when: 'CONFIG_POSIX', if_true: files('aio-posix.c')) +util_ss.add(when: 'CONFIG_POSIX', if_true: files('fdmon-poll.c')) +util_ss.add(when: 'CONFIG_EPOLL_CREATE1', if_true: files('fdmon-epoll.c')) +util_ss.add(when: 'CONFIG_LINUX_IO_URING', if_true: files('fdmon-io_uring.= c')) +util_ss.add(when: 'CONFIG_POSIX', if_true: files('compatfd.c')) +util_ss.add(when: 'CONFIG_POSIX', if_true: files('event_notifier-posix.c')) +util_ss.add(when: 'CONFIG_POSIX', if_true: files('mmap-alloc.c')) +util_ss.add(when: 'CONFIG_POSIX', if_true: files('oslib-posix.c')) +util_ss.add(when: 'CONFIG_POSIX', if_true: [files('qemu-openpty.c'), util]) +util_ss.add(when: 'CONFIG_POSIX', if_true: files('qemu-thread-posix.c')) +util_ss.add(when: 'CONFIG_POSIX', if_true: files('memfd.c')) +util_ss.add(when: 'CONFIG_WIN32', if_true: files('aio-win32.c')) +util_ss.add(when: 'CONFIG_WIN32', if_true: files('event_notifier-win32.c')) +util_ss.add(when: 'CONFIG_WIN32', if_true: files('oslib-win32.c')) +util_ss.add(when: 'CONFIG_WIN32', if_true: files('qemu-thread-win32.c')) +util_ss.add(when: 'CONFIG_WIN32', if_true: winmm) +util_ss.add(files('envlist.c', 'path.c', 'module.c')) +util_ss.add(files('host-utils.c')) +util_ss.add(files('bitmap.c', 'bitops.c', 'hbitmap.c')) +util_ss.add(files('fifo8.c')) +util_ss.add(files('nvdimm-utils.c')) +util_ss.add(files('cacheinfo.c')) +util_ss.add(files('error.c', 'qemu-error.c')) +util_ss.add(files('qemu-print.c')) +util_ss.add(files('id.c')) +util_ss.add(files('iov.c', 'qemu-config.c', 'qemu-sockets.c', 'uri.c', 'no= tify.c')) +util_ss.add(files('qemu-option.c', 'qemu-progress.c')) +util_ss.add(files('keyval.c')) +util_ss.add(files('hexdump.c')) +util_ss.add(files('crc32c.c')) +util_ss.add(files('uuid.c')) +util_ss.add(files('throttle.c')) +util_ss.add(files('getauxval.c')) +util_ss.add(files('readline.c')) +util_ss.add(files('rcu.c')) +util_ss.add(when: 'CONFIG_MEMBARRIER', if_true: files('sys_membarrier.c')) +util_ss.add(files('qemu-coroutine.c', 'qemu-coroutine-lock.c', 'qemu-corou= tine-io.c')) +util_ss.add(files('qemu-coroutine-sleep.c')) +util_ss.add(files('qemu-co-shared-resource.c')) +util_ss.add(files('coroutine-@0@.c'.format(config_host['CONFIG_COROUTINE_B= ACKEND']))) +util_ss.add(files('buffer.c')) +util_ss.add(files('timed-average.c')) +util_ss.add(files('base64.c')) +util_ss.add(files('log.c')) +util_ss.add(files('pagesize.c')) +util_ss.add(files('qdist.c')) +util_ss.add(files('qht.c')) +util_ss.add(files('qsp.c')) +util_ss.add(files('range.c')) +util_ss.add(files('stats64.c')) +util_ss.add(files('systemd.c')) +util_ss.add(files('iova-tree.c')) +util_ss.add(when: 'CONFIG_INOTIFY1', if_true: files('filemonitor-inotify.c= '), + if_false: files('filemonitor-stub.c'= )) +util_ss.add(when: 'CONFIG_LINUX', if_true: files('vfio-helpers.c')) +util_ss.add(when: 'CONFIG_POSIX', if_true: files('drm.c')) +util_ss.add(files('guest-random.c')) +util_ss.add(when: 'CONFIG_GIO', if_true: [files('dbus.c'), gio]) + +if have_user then + util_ss.add(files('selfmap.c')) +endif --=20 1.8.3.1