The new option will enable support of shared object build. Otherwise objects are static linked to executables.
Signed-off-by: Fam Zheng <f...@redhat.com> --- Makefile | 8 ++++++++ configure | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/Makefile b/Makefile index 3685bbd..5a2c6f2 100644 --- a/Makefile +++ b/Makefile @@ -135,6 +135,7 @@ endif all: $(DOCS) $(TOOLS) $(HELPERS-y) recurse-all +ifeq ($(CONFIG_MODULES),y) define add-modules $(foreach o,$(filter %.o,$($1)),$(eval \ $(patsubst %.o,%.mo,$o): $o)) @@ -146,6 +147,13 @@ dummy := $(call add-modules,common-obj-m) modules: $(patsubst %.mo,%$(DSOSUF),$(modules-m)) all: modules +else +block-obj-y += $(block-obj-m) +common-obj-y += $(common-obj-m) +block-obj-m := +common-obj-m := +endif + vl.o: QEMU_CFLAGS+=$(GPROF_CFLAGS) diff --git a/configure b/configure index a2858c2..f1d7fa7 100755 --- a/configure +++ b/configure @@ -192,6 +192,7 @@ gcov_tool="gcov" EXESUF="" DSOSUF=".so" LDFLAGS_SHARED="-shared" +modules="no" prefix="/usr/local" mandir="\${prefix}/share/man" datadir="\${prefix}/share" @@ -650,6 +651,8 @@ for opt do ;; --disable-debug-info) ;; + --enable-modules) modules="yes" + ;; --cpu=*) ;; --target-list=*) target_list="$optarg" @@ -1052,6 +1055,7 @@ echo " --libdir=PATH install libraries in PATH" echo " --sysconfdir=PATH install config in PATH$confsuffix" echo " --localstatedir=PATH install local state in PATH (set at runtime on win32)" echo " --with-confsuffix=SUFFIX suffix for QEMU data inside datadir and sysconfdir [$confsuffix]" +echo " --enable-modules enable modules support" echo " --enable-debug-tcg enable TCG debugging" echo " --disable-debug-tcg disable TCG debugging (default)" echo " --enable-debug-info enable debugging information (default)" @@ -3580,6 +3584,7 @@ echo "python $python" if test "$slirp" = "yes" ; then echo "smbd $smbd" fi +echo "module support $modules" echo "host CPU $cpu" echo "host big endian $bigendian" echo "target list $target_list" @@ -3697,6 +3702,9 @@ echo "libs_softmmu=$libs_softmmu" >> $config_host_mak echo "ARCH=$ARCH" >> $config_host_mak +if test "$modules" = "yes"; then + echo "CONFIG_MODULES=y" >> $config_host_mak +fi case "$cpu" in arm|i386|x86_64|x32|ppc|aarch64) # The TCG interpreter currently does not support ld/st optimization. -- 1.8.3.1