From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40038) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VJepX-00054y-62 for qemu-devel@nongnu.org; Wed, 11 Sep 2013 03:27:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VJepO-0003Xh-KA for qemu-devel@nongnu.org; Wed, 11 Sep 2013 03:27:15 -0400 Received: from mail-ea0-x22e.google.com ([2a00:1450:4013:c01::22e]:37554) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VJepO-0003XW-AH for qemu-devel@nongnu.org; Wed, 11 Sep 2013 03:27:06 -0400 Received: by mail-ea0-f174.google.com with SMTP id z15so4343102ead.19 for ; Wed, 11 Sep 2013 00:27:05 -0700 (PDT) Sender: Paolo Bonzini Message-ID: <52301B4E.7000308@redhat.com> Date: Wed, 11 Sep 2013 09:27:10 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <1378877909-28518-1-git-send-email-famz@redhat.com> <1378877909-28518-6-git-send-email-famz@redhat.com> In-Reply-To: <1378877909-28518-6-git-send-email-famz@redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [RFC PATCH v5 5/6] configure: introduce --enable-modules List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Fam Zheng Cc: peter.maydell@linaro.org, mjt@tls.msk.ru, qemu-devel@nongnu.org, stefanha@redhat.com, vilanova@ac.upc.edu, rth@twiddle.net Il 11/09/2013 07:38, Fam Zheng ha scritto: > The new option will enable support of shared object build. Otherwise > objects are static linked to executables. > > Signed-off-by: Fam Zheng > --- > Makefile.target | 6 +++++- > configure | 8 ++++++++ > rules.mak | 8 ++++++-- > 3 files changed, 19 insertions(+), 3 deletions(-) > > diff --git a/Makefile.target b/Makefile.target > index 1d92523..beab0f9 100644 > --- a/Makefile.target > +++ b/Makefile.target > @@ -152,7 +152,11 @@ obj-y-save := $(obj-y) > block-obj-y := > common-obj-y := > include $(SRC_PATH)/Makefile.objs > -dummy := $(call unnest-vars,..,block-obj-y common-obj-y) > +dummy := $(call unnest-vars,.., \ > + block-obj-y \ > + block-obj-m \ > + common-obj-y \ > + common-obj-m) > > # Now restore obj-y > obj-y := $(obj-y-save) > 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. > diff --git a/rules.mak b/rules.mak > index ea97888..860b8ac 100644 > --- a/rules.mak > +++ b/rules.mak > @@ -185,7 +185,11 @@ $(foreach var,$(nested-vars), $(eval \ > $(foreach v,$(filter %-m,$(nested-vars)), \ > $(call add-modules,$v)) > > -$(eval modules: $(patsubst %.mo,%$(DSOSUF),$(modules-m))) > -$(eval all: modules) > +$(if $(CONFIG_MODULES), \ > + $(eval modules: $(patsubst %.mo,%$(DSOSUF),$(modules-m))) \ > + $(eval all: modules), \ Since you'll have a v6, please move "all: modules" to Makefile, and in rules.mak: .PHONY: modules modules: There are a couple of things that can be improved still (I don't like obj-save-y for example), but things are taking shape and all of this looks like something that can be fixed on top. If you look at converting more parts to modules (e.g. rbd or spice), you can drop that RFC! :) Thanks, Paolo > + $(foreach v,$(filter %-m,$(nested-vars)), \ > + $(eval $(patsubst %-m,%-y,$v) += $($v)) \ > + $(eval $v := ))) > > endef >