Patchwork [v1,1/1] ./configure: add option for disabling VirtFS

login
register
mail settings
Submitter Meador Inge
Date Feb. 7, 2012, 8:44 p.m.
Message ID <1328647446-5452-2-git-send-email-meadori@codesourcery.com>
Download mbox | patch
Permalink /patch/140013/
State New
Headers show

Comments

Meador Inge - Feb. 7, 2012, 8:44 p.m.
Signed-off-by: Meador Inge <meadori@codesourcery.com>
---
 Makefile  |    4 ++++
 configure |   16 +++++++++++++---
 2 files changed, 17 insertions(+), 3 deletions(-)
Peter Maydell - Feb. 9, 2012, 10:39 p.m.
On 7 February 2012 20:44, Meador Inge <meadori@codesourcery.com> wrote:
> Signed-off-by: Meador Inge <meadori@codesourcery.com>
> ---
>  Makefile  |    4 ++++
>  configure |   16 +++++++++++++---
>  2 files changed, 17 insertions(+), 3 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 47acf3d..030619c 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -40,7 +40,9 @@ HELPERS-$(CONFIG_LINUX) = qemu-bridge-helper$(EXESUF)
>
>  ifdef BUILD_DOCS
>  DOCS=qemu-doc.html qemu-tech.html qemu.1 qemu-img.1 qemu-nbd.8 QMP/qmp-commands.txt
> +ifdef CONFIG_VIRTFS
>  DOCS+=fsdev/virtfs-proxy-helper.1
> +endif
>  else
>  DOCS=
>  endif
> @@ -162,8 +164,10 @@ qemu-io$(EXESUF): qemu-io.o cmd.o $(tools-obj-y) $(block-obj-y)
>
>  qemu-bridge-helper$(EXESUF): qemu-bridge-helper.o
>
> +ifdef CONFIG_VIRTFS
>  fsdev/virtfs-proxy-helper$(EXESUF): fsdev/virtfs-proxy-helper.o fsdev/virtio-9p-marshal.o oslib-posix.o $(trace-obj-y)
>  fsdev/virtfs-proxy-helper$(EXESUF): LIBS += -lcap
> +endif

We don't need to make this conditional, we will just not put
the proxy-helper into TOOLS if we don't want to build it and
this dependency will be ignored.

>  qemu-img-cmds.h: $(SRC_PATH)/qemu-img-cmds.hx
>        $(call quiet-command,sh $(SRC_PATH)/scripts/hxtool -h < $< > $@,"  GEN   $@")
> diff --git a/configure b/configure
> index 763db24..081d720 100755
> --- a/configure
> +++ b/configure
> @@ -121,6 +121,7 @@ docs=""
>  fdt=""
>  nptl=""
>  sdl=""
> +virtfs="yes"
>  vnc="yes"
>  sparse="no"
>  uuid=""
> @@ -586,6 +587,10 @@ for opt do
>   ;;
>   --enable-sdl) sdl="yes"
>   ;;
> +  --disable-virtfs) virtfs="no"
> +  ;;
> +  --enable-virtfs) virtfs="yes"
> +  ;;
>   --disable-vnc) vnc="no"
>   ;;
>   --enable-vnc) vnc="yes"

This should be handled the same way as a number of other optional
components : default is "" meaning 'probe and use if possible'.
So you end up with a test like:

if test "$virtfs" != no; then
   if test "$cap" = yes && test "$linux" = yes && test "$attr" = yes; then
       virtfs=yes
       tools="$tools fsdev/virtfs-proxy-helper\$(EXESUF)"
   else
       if test "$virtfs" = yes; then
           feature_not_found "virtfs"
       fi
   fi
fi

and then later just
if test "$virtfs" = "yes" ; then
   echo "CONFIG_VIRTFS=y" >> $config_host_mak
fi

-- PMM
Meador Inge - Feb. 10, 2012, 12:49 a.m.
On 02/09/2012 04:39 PM, Peter Maydell wrote:

> On 7 February 2012 20:44, Meador Inge <meadori@codesourcery.com> wrote:
>> Signed-off-by: Meador Inge <meadori@codesourcery.com>
>> ---
>>  Makefile  |    4 ++++
>>  configure |   16 +++++++++++++---
>>  2 files changed, 17 insertions(+), 3 deletions(-)
>>
>> diff --git a/Makefile b/Makefile
>> index 47acf3d..030619c 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -40,7 +40,9 @@ HELPERS-$(CONFIG_LINUX) = qemu-bridge-helper$(EXESUF)
>>
>>  ifdef BUILD_DOCS
>>  DOCS=qemu-doc.html qemu-tech.html qemu.1 qemu-img.1 qemu-nbd.8 QMP/qmp-commands.txt
>> +ifdef CONFIG_VIRTFS
>>  DOCS+=fsdev/virtfs-proxy-helper.1
>> +endif
>>  else
>>  DOCS=
>>  endif
>> @@ -162,8 +164,10 @@ qemu-io$(EXESUF): qemu-io.o cmd.o $(tools-obj-y) $(block-obj-y)
>>
>>  qemu-bridge-helper$(EXESUF): qemu-bridge-helper.o
>>
>> +ifdef CONFIG_VIRTFS
>>  fsdev/virtfs-proxy-helper$(EXESUF): fsdev/virtfs-proxy-helper.o fsdev/virtio-9p-marshal.o oslib-posix.o $(trace-obj-y)
>>  fsdev/virtfs-proxy-helper$(EXESUF): LIBS += -lcap
>> +endif
> 
> We don't need to make this conditional, we will just not put
> the proxy-helper into TOOLS if we don't want to build it and
> this dependency will be ignored.

Fixed.

>>  qemu-img-cmds.h: $(SRC_PATH)/qemu-img-cmds.hx
>>        $(call quiet-command,sh $(SRC_PATH)/scripts/hxtool -h < $< > $@,"  GEN   $@")
>> diff --git a/configure b/configure
>> index 763db24..081d720 100755
>> --- a/configure
>> +++ b/configure
>> @@ -121,6 +121,7 @@ docs=""
>>  fdt=""
>>  nptl=""
>>  sdl=""
>> +virtfs="yes"
>>  vnc="yes"
>>  sparse="no"
>>  uuid=""
>> @@ -586,6 +587,10 @@ for opt do
>>   ;;
>>   --enable-sdl) sdl="yes"
>>   ;;
>> +  --disable-virtfs) virtfs="no"
>> +  ;;
>> +  --enable-virtfs) virtfs="yes"
>> +  ;;
>>   --disable-vnc) vnc="no"
>>   ;;
>>   --enable-vnc) vnc="yes"
> 
> This should be handled the same way as a number of other optional
> components : default is "" meaning 'probe and use if possible'.
> So you end up with a test like:
> 
> if test "$virtfs" != no; then
>    if test "$cap" = yes && test "$linux" = yes && test "$attr" = yes; then
>        virtfs=yes
>        tools="$tools fsdev/virtfs-proxy-helper\$(EXESUF)"
>    else
>        if test "$virtfs" = yes; then
>            feature_not_found "virtfs"
>        fi
>    fi
> fi
> 
> and then later just
> if test "$virtfs" = "yes" ; then
>    echo "CONFIG_VIRTFS=y" >> $config_host_mak
> fi

That's much cleaner.  Thanks for the review.

v2 patch coming up soon.

Patch

diff --git a/Makefile b/Makefile
index 47acf3d..030619c 100644
--- a/Makefile
+++ b/Makefile
@@ -40,7 +40,9 @@  HELPERS-$(CONFIG_LINUX) = qemu-bridge-helper$(EXESUF)
 
 ifdef BUILD_DOCS
 DOCS=qemu-doc.html qemu-tech.html qemu.1 qemu-img.1 qemu-nbd.8 QMP/qmp-commands.txt
+ifdef CONFIG_VIRTFS
 DOCS+=fsdev/virtfs-proxy-helper.1
+endif
 else
 DOCS=
 endif
@@ -162,8 +164,10 @@  qemu-io$(EXESUF): qemu-io.o cmd.o $(tools-obj-y) $(block-obj-y)
 
 qemu-bridge-helper$(EXESUF): qemu-bridge-helper.o
 
+ifdef CONFIG_VIRTFS
 fsdev/virtfs-proxy-helper$(EXESUF): fsdev/virtfs-proxy-helper.o fsdev/virtio-9p-marshal.o oslib-posix.o $(trace-obj-y)
 fsdev/virtfs-proxy-helper$(EXESUF): LIBS += -lcap
+endif
 
 qemu-img-cmds.h: $(SRC_PATH)/qemu-img-cmds.hx
 	$(call quiet-command,sh $(SRC_PATH)/scripts/hxtool -h < $< > $@,"  GEN   $@")
diff --git a/configure b/configure
index 763db24..081d720 100755
--- a/configure
+++ b/configure
@@ -121,6 +121,7 @@  docs=""
 fdt=""
 nptl=""
 sdl=""
+virtfs="yes"
 vnc="yes"
 sparse="no"
 uuid=""
@@ -586,6 +587,10 @@  for opt do
   ;;
   --enable-sdl) sdl="yes"
   ;;
+  --disable-virtfs) virtfs="no"
+  ;;
+  --enable-virtfs) virtfs="yes"
+  ;;
   --disable-vnc) vnc="no"
   ;;
   --enable-vnc) vnc="yes"
@@ -993,6 +998,8 @@  echo "  --disable-strip          disable stripping binaries"
 echo "  --disable-werror         disable compilation abort on warning"
 echo "  --disable-sdl            disable SDL"
 echo "  --enable-sdl             enable SDL"
+echo "  --disable-virtfs         disable VirtFS"
+echo "  --enable-virtfs          enable VirtFS"
 echo "  --disable-vnc            disable VNC"
 echo "  --enable-vnc             enable VNC"
 echo "  --enable-cocoa           enable COCOA (Mac OS X only)"
@@ -2808,7 +2815,7 @@  confdir=$sysconfdir$confsuffix
 tools=
 if test "$softmmu" = yes ; then
   tools="qemu-img\$(EXESUF) qemu-io\$(EXESUF) $tools"
-  if [ "$cap" = "yes" -a "$linux" = "yes" ] ; then
+  if [ "$cap" = "yes" -a "$linux" = "yes" -a "$virtfs" = "yes" ] ; then
       tools="$tools fsdev/virtfs-proxy-helper\$(EXESUF)"
   fi
   if [ "$linux" = "yes" -o "$bsd" = "yes" -o "$solaris" = "yes" ] ; then
@@ -2874,6 +2881,7 @@  echo "Audio drivers     $audio_drv_list"
 echo "Extra audio cards $audio_card_list"
 echo "Block whitelist   $block_drv_whitelist"
 echo "Mixer emulation   $mixemu"
+echo "VirtFS support    $virtfs"
 echo "VNC support       $vnc"
 if test "$vnc" = "yes" ; then
     echo "VNC TLS support   $vnc_tls"
@@ -3164,8 +3172,10 @@  if test "$libattr" = "yes" ; then
   echo "CONFIG_LIBATTR=y" >> $config_host_mak
 fi
 if test "$linux" = "yes" ; then
-  if test "$attr" = "yes" ; then
-    echo "CONFIG_VIRTFS=y" >> $config_host_mak
+  if test "$virtfs" = "yes" ; then
+    if test "$attr" = "yes" ; then
+      echo "CONFIG_VIRTFS=y" >> $config_host_mak
+    fi
   fi
 fi
 if test "$blobs" = "yes" ; then