qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC PATCH v5 5/6] configure: introduce --enable-module


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [RFC PATCH v5 5/6] configure: introduce --enable-modules
Date: Wed, 11 Sep 2013 09:27:10 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130805 Thunderbird/17.0.8

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 <address@hidden>
> ---
>  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
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]