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). v4: Added --enable-modules in the end of series. Make nested-vars and obj-base as arguemnts to unnest-vars. Take Paolo's idea in comments for v2 and switch back module objects syntax to: $(obj)/foo.mo : $(addprefix $(obj)/, bar.o biz.o qux.o) because this needs less duplication among Makefiles. Fam Zheng (6): 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 configure: introduce --enable-modules block: build qed and curl as shared library Makefile | 42 +++++++++++++++++++++++++++++++++++++++- Makefile.objs | 18 +++-------------- Makefile.target | 16 +++++++++++++--- block.c | 1 + block/Makefile.objs | 7 ++++--- bsd-user/main.c | 3 +++ configure | 40 +++++++++++++++++++++++++++----------- include/qemu/module.h | 9 +++++++++ linux-user/main.c | 3 +++ rules.mak | 53 ++++++++++++++++++++++++++++++++++++++------------- scripts/create_config | 4 ++++ tests/Makefile | 2 ++ util/module.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++ vl.c | 2 ++ 14 files changed, 207 insertions(+), 46 deletions(-) -- 1.8.3.1