aboutsummaryrefslogtreecommitdiff
path: root/contrib/plugins/Makefile
diff options
context:
space:
mode:
authorAlex Bennée <alex.bennee@linaro.org>2020-09-09 12:27:41 +0100
committerAlex Bennée <alex.bennee@linaro.org>2020-09-10 10:47:03 +0100
commitc17a386b6afe608086aa4d260e29662865680b7f (patch)
treec00d1a6d5d98c3d8fcf2240086aeee94bb81b72b /contrib/plugins/Makefile
parent89e076f37d0020bfadb127059083baeb57594f70 (diff)
downloadqemu-c17a386b6afe608086aa4d260e29662865680b7f.zip
qemu-c17a386b6afe608086aa4d260e29662865680b7f.tar.gz
qemu-c17a386b6afe608086aa4d260e29662865680b7f.tar.bz2
plugins: move the more involved plugins to contrib
We have an exploding complexity problem in the testing so lets just move the more involved plugins into contrib. tests/plugins still exist for the basic plugins that exercise the API. We restore the old pre-meson style Makefile for contrib as it also doubles as a guide for out-of-tree plugin builds. While we are at it add some examples to the documentation and a specific plugins build target. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20200909112742.25730-11-alex.bennee@linaro.org>
Diffstat (limited to 'contrib/plugins/Makefile')
-rw-r--r--contrib/plugins/Makefile42
1 files changed, 42 insertions, 0 deletions
diff --git a/contrib/plugins/Makefile b/contrib/plugins/Makefile
new file mode 100644
index 0000000..7801b08
--- /dev/null
+++ b/contrib/plugins/Makefile
@@ -0,0 +1,42 @@
+# -*- Mode: makefile -*-
+#
+# This Makefile example is fairly independent from the main makefile
+# so users can take and adapt it for their build. We only really
+# include config-host.mak so we don't have to repeat probing for
+# cflags that the main configure has already done for us.
+#
+
+BUILD_DIR := $(CURDIR)/../..
+
+include $(BUILD_DIR)/config-host.mak
+
+VPATH += $(SRC_PATH)/contrib/plugins
+
+NAMES :=
+NAMES += hotblocks
+NAMES += hotpages
+NAMES += howvec
+NAMES += lockstep
+
+SONAMES := $(addsuffix .so,$(addprefix lib,$(NAMES)))
+
+# The main QEMU uses Glib extensively so it's perfectly fine to use it
+# in plugins (which many example do).
+CFLAGS = $(GLIB_CFLAGS)
+CFLAGS += -fPIC
+CFLAGS += $(if $(findstring no-psabi,$(QEMU_CFLAGS)),-Wpsabi)
+CFLAGS += -I$(SRC_PATH)/include/qemu
+
+all: $(SONAMES)
+
+%.o: %.c
+ $(CC) $(CFLAGS) -c -o $@ $<
+
+lib%.so: %.o
+ $(CC) -shared -Wl,-soname,$@ -o $@ $^ $(LDLIBS)
+
+clean:
+ rm -f *.o *.so *.d
+ rm -Rf .libs
+
+.PHONY: all clean