aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@redhat.com>2019-07-12 22:23:46 +0400
committerPaolo Bonzini <pbonzini@redhat.com>2020-08-21 06:30:10 -0400
commitea458960ec37856a7c50337ae3c693022154aaf7 (patch)
treeb4c334a32cac0e8fbf32158279d4a6ed732bafd4
parent32fcc6244c729f6311d2a4c8bd54bb9b7f43786d (diff)
contrib/vhost-user-gpu: convert to meson
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r--Makefile18
-rw-r--r--Makefile.objs1
-rw-r--r--contrib/vhost-user-gpu/Makefile.objs10
-rw-r--r--contrib/vhost-user-gpu/meson.build13
-rw-r--r--meson.build15
-rw-r--r--rules.mak7
6 files changed, 29 insertions, 35 deletions
diff --git a/Makefile b/Makefile
index c0cb10cd77..ed6494b771 100644
--- a/Makefile
+++ b/Makefile
@@ -195,16 +195,10 @@ $(call set-vpath, $(SRC_PATH))
LIBS+=-lz $(LIBS_TOOLS)
-vhost-user-json-y =
HELPERS-y = $(HELPERS)
HELPERS-$(call land,$(CONFIG_SOFTMMU),$(CONFIG_LINUX)) += qemu-bridge-helper$(EXESUF)
-ifeq ($(CONFIG_LINUX)$(CONFIG_VIRGL)$(CONFIG_GBM)$(CONFIG_TOOLS),yyyy)
-HELPERS-y += vhost-user-gpu$(EXESUF)
-vhost-user-json-y += contrib/vhost-user-gpu/50-qemu-gpu.json
-endif
-
# Sphinx does not allow building manuals into the same directory as
# the source files, so if we're doing an in-tree QEMU build we must
# build the manuals into a subdirectory (and then install them from
@@ -311,7 +305,6 @@ dummy := $(call unnest-vars,, \
elf2dmp-obj-y \
ivshmem-client-obj-y \
ivshmem-server-obj-y \
- vhost-user-gpu-obj-y \
qga-vss-dll-obj-y \
block-obj-y \
block-obj-m \
@@ -325,7 +318,7 @@ dummy := $(call unnest-vars,, \
include $(SRC_PATH)/tests/Makefile.include
-all: $(DOCS) $(if $(BUILD_DOCS),sphinxdocs) $(TOOLS) $(HELPERS-y) recurse-all modules $(vhost-user-json-y)
+all: $(DOCS) $(if $(BUILD_DOCS),sphinxdocs) $(TOOLS) $(HELPERS-y) recurse-all modules
qemu-version.h: FORCE
$(call quiet-command, \
@@ -531,9 +524,6 @@ ivshmem-server$(EXESUF): $(ivshmem-server-obj-y) $(COMMON_LDADDS)
$(call LINK, $^)
endif
-vhost-user-gpu$(EXESUF): $(vhost-user-gpu-obj-y) contrib/libvhost-user/libvhost-user.a $(COMMON_LDADDS)
- $(call LINK, $^)
-
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))), \
@@ -731,12 +721,6 @@ endif
ifneq ($(HELPERS-y),)
$(call install-prog,$(HELPERS-y),$(DESTDIR)$(libexecdir))
endif
-ifneq ($(vhost-user-json-y),)
- $(INSTALL_DIR) "$(DESTDIR)$(qemu_datadir)/vhost-user/"
- for x in $(vhost-user-json-y); do \
- $(INSTALL_DATA) $$x "$(DESTDIR)$(qemu_datadir)/vhost-user/"; \
- done
-endif
ifdef CONFIG_TRACE_SYSTEMTAP
$(INSTALL_PROG) "scripts/qemu-trace-stap" $(DESTDIR)$(bindir)
endif
diff --git a/Makefile.objs b/Makefile.objs
index 0922c3ed00..2f2d4b2066 100644
--- a/Makefile.objs
+++ b/Makefile.objs
@@ -106,6 +106,5 @@ qga-vss-dll-obj-y = qga/
elf2dmp-obj-y = contrib/elf2dmp/
ivshmem-client-obj-$(CONFIG_IVSHMEM) = contrib/ivshmem-client/
ivshmem-server-obj-$(CONFIG_IVSHMEM) = contrib/ivshmem-server/
-vhost-user-gpu-obj-y = contrib/vhost-user-gpu/
######################################################################
diff --git a/contrib/vhost-user-gpu/Makefile.objs b/contrib/vhost-user-gpu/Makefile.objs
deleted file mode 100644
index 09296091be..0000000000
--- a/contrib/vhost-user-gpu/Makefile.objs
+++ /dev/null
@@ -1,10 +0,0 @@
-vhost-user-gpu-obj-y = vhost-user-gpu.o virgl.o vugbm.o
-
-vhost-user-gpu.o-cflags := $(PIXMAN_CFLAGS) $(GBM_CFLAGS)
-vhost-user-gpu.o-libs := $(PIXMAN_LIBS)
-
-virgl.o-cflags := $(VIRGL_CFLAGS) $(GBM_CFLAGS)
-virgl.o-libs := $(VIRGL_LIBS)
-
-vugbm.o-cflags := $(GBM_CFLAGS)
-vugbm.o-libs := $(GBM_LIBS)
diff --git a/contrib/vhost-user-gpu/meson.build b/contrib/vhost-user-gpu/meson.build
new file mode 100644
index 0000000000..6c1459f54a
--- /dev/null
+++ b/contrib/vhost-user-gpu/meson.build
@@ -0,0 +1,13 @@
+if 'CONFIG_TOOLS' in config_host and 'CONFIG_VIRGL' in config_host \
+ and 'CONFIG_GBM' in config_host and 'CONFIG_LINUX' in config_host
+ executable('vhost-user-gpu', files('vhost-user-gpu.c', 'virgl.c', 'vugbm.c'),
+ link_with: libvhost_user,
+ dependencies: [qemuutil, pixman, gbm, virgl],
+ install: true,
+ install_dir: get_option('libexecdir'))
+
+ configure_file(input: '50-qemu-gpu.json.in',
+ output: '50-qemu-gpu.json',
+ configuration: config_host,
+ install_dir: config_host['qemu_datadir'] / 'vhost-user')
+endif
diff --git a/meson.build b/meson.build
index 371d571495..71ef66e1d6 100644
--- a/meson.build
+++ b/meson.build
@@ -83,6 +83,8 @@ if 'CONFIG_GNUTLS' in config_host
gnutls = declare_dependency(compile_args: config_host['GNUTLS_CFLAGS'].split(),
link_args: config_host['GNUTLS_LIBS'].split())
endif
+pixman = declare_dependency(compile_args: config_host['PIXMAN_CFLAGS'].split(),
+ link_args: config_host['PIXMAN_LIBS'].split())
seccomp = not_found
if 'CONFIG_SECCOMP' in config_host
seccomp = declare_dependency(compile_args: config_host['SECCOMP_CFLAGS'].split(),
@@ -97,6 +99,16 @@ if 'CONFIG_LIBISCSI' in config_host
libiscsi = declare_dependency(compile_args: config_host['LIBISCSI_CFLAGS'].split(),
link_args: config_host['LIBISCSI_LIBS'].split())
endif
+gbm = not_found
+if 'CONFIG_GBM' in config_host
+ gbm = declare_dependency(compile_args: config_host['GBM_CFLAGS'].split(),
+ link_args: config_host['GBM_LIBS'].split())
+endif
+virgl = not_found
+if 'CONFIG_VIRGL' in config_host
+ virgl = declare_dependency(compile_args: config_host['VIRGL_CFLAGS'].split(),
+ link_args: config_host['VIRGL_LIBS'].split())
+endif
target_dirs = config_host['TARGET_DIRS'].split()
have_user = false
@@ -265,6 +277,9 @@ if have_tools
if 'CONFIG_VHOST_USER' in config_host
subdir('contrib/libvhost-user')
subdir('contrib/vhost-user-blk')
+ if 'CONFIG_LINUX' in config_host
+ subdir('contrib/vhost-user-gpu')
+ endif
subdir('contrib/vhost-user-input')
subdir('contrib/vhost-user-scsi')
endif
diff --git a/rules.mak b/rules.mak
index 7aefd37b5d..1aa6394079 100644
--- a/rules.mak
+++ b/rules.mak
@@ -402,13 +402,6 @@ TEXI2MAN = $(call quiet-command, \
%.8:
$(call TEXI2MAN)
-GEN_SUBST = $(call quiet-command, \
- sed -e "s!@libexecdir@!$(libexecdir)!g" < $< > $@, \
- "GEN","$@")
-
-%.json: %.json.in
- $(call GEN_SUBST)
-
# Support for building multiple output files by atomically executing
# a single rule which depends on several input files (so the rule
# will be executed exactly once, not once per output file, and