This series implements feature of shared object building as described in: http://wiki.qemu.org/Features/Modules
It's achieved in three steps, with extra bonus to change curl and qed to shared library modules in the end (only to demonstrate the usage, no "make install" support of .so files yet). v3: Support a new consistent syntax for per object cflags, libs, and module object list: foo.o-cflags := $(FOO_CFLAGS) foo.o-libs := $(FOO_LIBS) bar.mo-objs := biz.o qux.o All without $(obj) now, as they are automa[gt]ically prefixed when unnesting variables in top Makefile (foo.o should be listed in some nested var to expand these variables correctly). [01/05] make.rule: fix $(obj) to a real relative path [Paolo] a different and cleaner fix as suggested, please review again. [02/05] rule.mak: allow per object cflags and libs Cleaner syntax as described above, see patch 05 for example. [03/05] Makefile: introduce common-obj-m and block-obj-m for DSO Based on the object variable syntax. [04/05] module: implement module loading function [Paolo] Use g_strdup_printf and G_MODULE_BIND_LOCAL. Remove unused #include's. [05/05] block: build qed and curl as shared library Fam Zheng (5): make.rule: fix $(obj) to a real relative path rule.mak: allow per object cflags and libs Makefile: introduce common-obj-m and block-obj-m for DSO module: implement module loading function block: build qed and curl as shared library Makefile | 42 ++++++++++++++++++++++++++++++++++++++-- Makefile.objs | 19 +++++------------- Makefile.target | 10 ++++++++-- block.c | 1 + block/Makefile.objs | 7 ++++--- bsd-user/main.c | 3 +++ configure | 32 ++++++++++++++++++++----------- include/qemu/module.h | 9 +++++++++ linux-user/main.c | 3 +++ rules.mak | 41 +++++++++++++++++++++++++++++++++------ scripts/create_config | 4 ++++ tests/Makefile | 5 +++++ util/module.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++ vl.c | 2 ++ 14 files changed, 193 insertions(+), 38 deletions(-) -- 1.8.3.1