aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2020-01-24 13:08:01 +0100
committerPaolo Bonzini <pbonzini@redhat.com>2020-08-21 06:30:39 -0400
commitf556b4a10d3ccd6cad01f704e4ccb2252520d61e (patch)
tree3d9ee5e77ee2b2b193fe9ca7f785bc268c3c8f1c
parentc9322ab5bfe17e9db099646978f43a745816073e (diff)
meson: plugins
For now link arguments end up in Makefile.target, they will move to the right place soon. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r--Makefile8
-rw-r--r--Makefile.target12
-rw-r--r--meson.build5
-rw-r--r--plugins/Makefile.objs21
-rw-r--r--plugins/meson.build5
5 files changed, 21 insertions, 30 deletions
diff --git a/Makefile b/Makefile
index ca51abfd8c..ae0aa62082 100644
--- a/Makefile
+++ b/Makefile
@@ -433,13 +433,10 @@ endif
ICON_SIZES=16x16 24x24 32x32 48x48 64x64 128x128 256x256 512x512
-install-includedir:
- $(INSTALL_DIR) "$(DESTDIR)$(includedir)"
-
# Needed by "meson install"
export DESTDIR
install: all $(if $(BUILD_DOCS),install-doc) \
- install-datadir install-localstatedir install-includedir \
+ install-datadir install-localstatedir \
recurse-install
ifdef CONFIG_TRACE_SYSTEMTAP
$(INSTALL_PROG) "scripts/qemu-trace-stap" $(DESTDIR)$(bindir)
@@ -466,9 +463,6 @@ endif
ifdef CONFIG_GTK
$(MAKE) -C po $@
endif
-ifeq ($(CONFIG_PLUGIN),y)
- $(INSTALL_DATA) $(SRC_PATH)/include/qemu/qemu-plugin.h "$(DESTDIR)$(includedir)/qemu-plugin.h"
-endif
$(INSTALL_DIR) "$(DESTDIR)$(qemu_datadir)/keymaps"
set -e; for x in $(KEYMAPS); do \
$(INSTALL_DATA) $(SRC_PATH)/pc-bios/keymaps/$$x "$(DESTDIR)$(qemu_datadir)/keymaps"; \
diff --git a/Makefile.target b/Makefile.target
index c180b4cb38..2b7280b272 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -110,8 +110,6 @@ obj-y += trace/
#########################################################
LIBS := $(libs_cpu) $(LIBS)
-obj-$(CONFIG_PLUGIN) += plugins/
-
#########################################################
# Linux user emulator target
@@ -153,6 +151,16 @@ LIBS := $(LIBS) $(VDE_LIBS) $(SLIRP_LIBS)
LIBS := $(LIBS) $(LIBUSB_LIBS) $(SMARTCARD_LIBS) $(USB_REDIR_LIBS)
LIBS := $(LIBS) $(VIRGL_LIBS) $(CURSES_LIBS)
+ifeq ($(CONFIG_PLUGIN),y)
+ifdef CONFIG_HAS_LD_DYNAMIC_LIST
+LIBS += -Wl,--dynamic-list=$(BUILD_DIR)/qemu-plugins-ld.symbols
+else
+ifdef CONFIG_HAS_LD_EXPORTED_SYMBOLS_LIST
+LIBS += -Wl,-exported_symbols_list,$(BUILD_DIR)/qemu-plugins-ld64.symbols
+endif
+endif
+endif
+
generated-files-y += hmp-commands.h hmp-commands-info.h
endif # CONFIG_SOFTMMU
diff --git a/meson.build b/meson.build
index 5b1608df09..fa47410c29 100644
--- a/meson.build
+++ b/meson.build
@@ -731,6 +731,7 @@ subdir('net')
subdir('replay')
subdir('hw')
subdir('accel')
+subdir('plugins')
subdir('bsd-user')
subdir('linux-user')
@@ -899,6 +900,10 @@ endforeach
# Other build targets
+if 'CONFIG_PLUGIN' in config_host
+ install_headers('include/qemu/qemu-plugin.h')
+endif
+
if 'CONFIG_GUEST_AGENT' in config_host
subdir('qga')
endif
diff --git a/plugins/Makefile.objs b/plugins/Makefile.objs
deleted file mode 100644
index 6f14d91ccb..0000000000
--- a/plugins/Makefile.objs
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# Plugin Support
-#
-
-obj-y += loader.o
-obj-y += core.o
-obj-y += api.o
-
-# Abuse -libs suffix to only link with --dynamic-list/-exported_symbols_list
-# when the final binary includes the plugin object.
-#
-# Note that simply setting LDFLAGS is not enough: we build binaries that
-# never link plugin.o, and the linker might fail (at least ld64 does)
-# if the symbols in the list are not in the output binary.
-ifdef CONFIG_HAS_LD_DYNAMIC_LIST
-api.o-libs := -Wl,--dynamic-list=$(BUILD_DIR)/qemu-plugins-ld.symbols
-else
-ifdef CONFIG_HAS_LD_EXPORTED_SYMBOLS_LIST
-api.o-libs := -Wl,-exported_symbols_list,$(BUILD_DIR)/qemu-plugins-ld64.symbols
-endif
-endif
diff --git a/plugins/meson.build b/plugins/meson.build
new file mode 100644
index 0000000000..9608e5293f
--- /dev/null
+++ b/plugins/meson.build
@@ -0,0 +1,5 @@
+specific_ss.add(when: 'CONFIG_PLUGIN', if_true: [files(
+ 'loader.c',
+ 'core.c',
+ 'api.c',
+)])