* [Qemu-devel] [PATCH] Add ability to build without any targets enabled
@ 2012-08-31 17:06 Daniel P. Berrange
2012-08-31 17:15 ` Peter Maydell
0 siblings, 1 reply; 3+ messages in thread
From: Daniel P. Berrange @ 2012-08-31 17:06 UTC (permalink / raw)
To: qemu-devel
From: "Daniel P. Berrange" <berrange@redhat.com>
The qemu-img, qemu-nbd and qemu-io tools are quite useful in their
own right. eg LXC can use qemu-img and qemu-nbd to support running
of containers with qcow2 images. As such it is reasonable to allow
building these tools, without enabling any QEMU targets. This change
does two things:
- Allows passing an empty string to the --target-list arg
to disable all targets
- Adds --enable-tools/--disable-tools args to enable/disable
building of qemu-img, qemu-nbd and qemu-io independantly
of whether any softmmu target is disabled. The builds
default to enabled at all times.
With this you can do
./configure --target-list=
and get a build that only includes the basic tools
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
---
configure | 38 ++++++++++++++++++++++++++------------
1 file changed, 26 insertions(+), 12 deletions(-)
diff --git a/configure b/configure
index d97fd81..bbde154 100755
--- a/configure
+++ b/configure
@@ -128,6 +128,7 @@ libs_qga=""
debug_info="yes"
target_list=""
+without_targets=0
# Default value for a variable defining feature "foo".
# * foo="no" feature will only be used if --enable-foo arg is given
@@ -216,6 +217,7 @@ usb_redir=""
opengl=""
zlib="yes"
guest_agent="yes"
+want_tools="yes"
libiscsi=""
coroutine=""
seccomp=""
@@ -614,7 +616,12 @@ for opt do
;;
--cpu=*)
;;
- --target-list=*) target_list="$optarg"
+ --target-list=*)
+ if test -z "$optarg" ; then
+ without_targets=1
+ else
+ target_list="$optarg"
+ fi
;;
--enable-trace-backend=*) trace_backend="$optarg"
;;
@@ -865,6 +872,10 @@ for opt do
;;
--disable-guest-agent) guest_agent="no"
;;
+ --enable-tools) want_tools="yes"
+ ;;
+ --disable-tools) want_tools="no"
+ ;;
--enable-seccomp) seccomp="yes"
;;
--disable-seccomp) seccomp="no"
@@ -1315,14 +1326,13 @@ if ! "$python" -c 'import sys; sys.exit(sys.version_info < (2,4) or sys.version_
fi
if test -z "$target_list" ; then
- target_list="$default_target_list"
+ if test $without_targets = 0 ; then
+ target_list="$default_target_list"
+ fi
else
target_list=`echo "$target_list" | sed -e 's/,/ /g'`
fi
-if test -z "$target_list" ; then
- echo "No targets enabled"
- exit 1
-fi
+
# see if system emulation was really requested
case " $target_list " in
*"-softmmu "*) softmmu=yes
@@ -3039,9 +3049,14 @@ fi
qemu_confdir=$sysconfdir$confsuffix
qemu_datadir=$datadir$confsuffix
-tools=
-if test "$softmmu" = yes ; then
+tools=""
+if test "$want_tools" = "yes" ; then
tools="qemu-img\$(EXESUF) qemu-io\$(EXESUF) $tools"
+ if [ "$linux" = "yes" -o "$bsd" = "yes" -o "$solaris" = "yes" ] ; then
+ tools="qemu-nbd\$(EXESUF) $tools"
+ fi
+fi
+if test "$softmmu" = yes ; then
if test "$virtfs" != no ; then
if test "$cap" = yes && test "$linux" = yes && test "$attr" = yes ; then
virtfs=yes
@@ -3055,14 +3070,13 @@ if test "$softmmu" = yes ; then
fi
fi
if [ "$linux" = "yes" -o "$bsd" = "yes" -o "$solaris" = "yes" ] ; then
- tools="qemu-nbd\$(EXESUF) $tools"
if [ "$guest_agent" = "yes" ]; then
tools="qemu-ga\$(EXESUF) $tools"
fi
fi
-fi
-if test "$smartcard_nss" = "yes" ; then
- tools="vscclient\$(EXESUF) $tools"
+ if test "$smartcard_nss" = "yes" ; then
+ tools="vscclient\$(EXESUF) $tools"
+ fi
fi
# Mac OS X ships with a broken assembler
--
1.7.11.2
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [Qemu-devel] [PATCH] Add ability to build without any targets enabled
2012-08-31 17:06 [Qemu-devel] [PATCH] Add ability to build without any targets enabled Daniel P. Berrange
@ 2012-08-31 17:15 ` Peter Maydell
2012-08-31 17:29 ` Stefan Weil
0 siblings, 1 reply; 3+ messages in thread
From: Peter Maydell @ 2012-08-31 17:15 UTC (permalink / raw)
To: Daniel P. Berrange; +Cc: qemu-devel
On 31 August 2012 18:06, Daniel P. Berrange <berrange@redhat.com> wrote:
> From: "Daniel P. Berrange" <berrange@redhat.com>
>
> The qemu-img, qemu-nbd and qemu-io tools are quite useful in their
> own right. eg LXC can use qemu-img and qemu-nbd to support running
> of containers with qcow2 images. As such it is reasonable to allow
> building these tools, without enabling any QEMU targets. This change
> does two things:
>
> - Allows passing an empty string to the --target-list arg
> to disable all targets
> - Adds --enable-tools/--disable-tools args to enable/disable
> building of qemu-img, qemu-nbd and qemu-io independantly
> of whether any softmmu target is disabled. The builds
> default to enabled at all times.
Feels to me like these should be separate patches.
> With this you can do
>
> ./configure --target-list=
>
> and get a build that only includes the basic tools
>
> Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
> ---
> configure | 38 ++++++++++++++++++++++++++------------
> 1 file changed, 26 insertions(+), 12 deletions(-)
>
> diff --git a/configure b/configure
> index d97fd81..bbde154 100755
> --- a/configure
> +++ b/configure
> @@ -128,6 +128,7 @@ libs_qga=""
> debug_info="yes"
>
> target_list=""
> +without_targets=0
>
> # Default value for a variable defining feature "foo".
> # * foo="no" feature will only be used if --enable-foo arg is given
> @@ -216,6 +217,7 @@ usb_redir=""
> opengl=""
> zlib="yes"
> guest_agent="yes"
> +want_tools="yes"
> libiscsi=""
> coroutine=""
> seccomp=""
> @@ -614,7 +616,12 @@ for opt do
> ;;
> --cpu=*)
> ;;
> - --target-list=*) target_list="$optarg"
> + --target-list=*)
> + if test -z "$optarg" ; then
> + without_targets=1
> + else
> + target_list="$optarg"
> + fi
> ;;
I think the code ends up a bit simpler if you start with
target_list=DEFAULT
and use that as the indicator of 'use default list' rather
than the empty string. However that does add the 'undocumented
feature' that '--target-list=DEFAULT' becomes valid...
-- PMM
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] [PATCH] Add ability to build without any targets enabled
2012-08-31 17:15 ` Peter Maydell
@ 2012-08-31 17:29 ` Stefan Weil
0 siblings, 0 replies; 3+ messages in thread
From: Stefan Weil @ 2012-08-31 17:29 UTC (permalink / raw)
To: Peter Maydell; +Cc: qemu-devel
Am 31.08.2012 19:15, schrieb Peter Maydell:
> On 31 August 2012 18:06, Daniel P. Berrange<berrange@redhat.com> wrote:
>> From: "Daniel P. Berrange"<berrange@redhat.com>
>>
>> The qemu-img, qemu-nbd and qemu-io tools are quite useful in their
>> own right. eg LXC can use qemu-img and qemu-nbd to support running
>> of containers with qcow2 images. As such it is reasonable to allow
>> building these tools, without enabling any QEMU targets. This change
>> does two things:
>>
>> - Allows passing an empty string to the --target-list arg
>> to disable all targets
>> - Adds --enable-tools/--disable-tools args to enable/disable
>> building of qemu-img, qemu-nbd and qemu-io independantly
>> of whether any softmmu target is disabled. The builds
>> default to enabled at all times.
>
> Feels to me like these should be separate patches.
>
>> With this you can do
>>
>> ./configure --target-list=
>>
>> and get a build that only includes the basic tools
>>
>> Signed-off-by: Daniel P. Berrange<berrange@redhat.com>
>> ---
>> configure | 38 ++++++++++++++++++++++++++------------
>> 1 file changed, 26 insertions(+), 12 deletions(-)
>>
>> diff --git a/configure b/configure
>> index d97fd81..bbde154 100755
>> --- a/configure
>> +++ b/configure
>> @@ -128,6 +128,7 @@ libs_qga=""
>> debug_info="yes"
>>
>> target_list=""
>> +without_targets=0
>>
>> # Default value for a variable defining feature "foo".
>> # * foo="no" feature will only be used if --enable-foo arg is given
>> @@ -216,6 +217,7 @@ usb_redir=""
>> opengl=""
>> zlib="yes"
>> guest_agent="yes"
>> +want_tools="yes"
>> libiscsi=""
>> coroutine=""
>> seccomp=""
>> @@ -614,7 +616,12 @@ for opt do
>> ;;
>> --cpu=*)
>> ;;
>> - --target-list=*) target_list="$optarg"
>> + --target-list=*)
>> + if test -z "$optarg" ; then
>> + without_targets=1
>> + else
>> + target_list="$optarg"
>> + fi
>> ;;
>
> I think the code ends up a bit simpler if you start with
> target_list=DEFAULT
> and use that as the indicator of 'use default list' rather
> than the empty string. However that does add the 'undocumented
> feature' that '--target-list=DEFAULT' becomes valid...
>
> -- PMM
An undefined target_list might be a better indicator
and does not add undocumented features.
I appreciate the possibility of default builds without tools:
they save time when running 'git bisect' or in cross builds
when the tools are not needed.
My private QEMU has this feature since several years, but
uses an approach which differs from this patch: there are always
Makefile targets 'doc' and 'tools'. By default, 'all' includes
'doc' and 'tools', but they can be disabled using configure
options (--disable-docs, --disable-tools). Even when they
are disabled, it is possible to run 'make doc' or 'make tools'.
Regards,
Stefan W.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2012-08-31 17:29 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-31 17:06 [Qemu-devel] [PATCH] Add ability to build without any targets enabled Daniel P. Berrange
2012-08-31 17:15 ` Peter Maydell
2012-08-31 17:29 ` Stefan Weil
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).