Daniel P. Berrangé <berra...@redhat.com> writes: > With the huge number of QEMU targets, a default configuration will take > a very long time to rebuild. When developing most code changes, it is > sufficient to test compilation with a single target - rebuilding all > targets just extends compile times while not detecting any new problems. > > Developers will often thus specify a single target for configure, > commonly matching the host architecture. eg > > ./configure --target-list=x86_64-softmmu
A while back I messed with a patch that allowed stems in --target-list so you could quickly select targets with stems: Subject: [PATCH 0/4] Current Travis queue Date: Fri, 15 Apr 2016 16:56:57 +0100 Message-Id: <1460735821-12775-1-git-send-email-alex.ben...@linaro.org> but if I recall Peter was worried about it breaking existing configure lines. > > This works fine, but is a bit of a verbose thing to type out everytime > configure is invoked. There are already short-hand args to disable all > user targets, all softmmu targets, or all tcg targets. This adds one > further shorthand to disable all non-native architecture targets. > > ./configure --native I'm not sure this is really the case. My history tends to be littered with things like: ./configure --enable-debug --enable-debug-tcg --extra-cflags="-O0 -g3" --target-list=aarch64-linux-user when compile time is an issue although my development box is an x86. Normally I do compile all targets and rely on ccache to keep the compile time reasonable. > > Signed-off-by: Daniel P. Berrangé <berra...@redhat.com> > --- > > Suggestions welcomed for better names than --native, but bear in mind > the goal is to minimise amount of typing so nothing too verbose, hence > why I didn't do something like --disable-non-native ... I would argue it's "almost" equivalent to --disable-tcg as most native users in my experience aren't looking to run X on X via TCG. I could be wrong of course. > > configure | 24 ++++++++++++++++++++++++ > 1 file changed, 24 insertions(+) > > diff --git a/configure b/configure > index af72fc852e..807af93116 100755 > --- a/configure > +++ b/configure > @@ -233,6 +233,22 @@ supported_whpx_target() { > return 1 > } > > +supported_native_target() { > + glob "$1" "*-softmmu" || return 1 > + case "${1%-softmmu}:$cpu" in > + arm:arm | aarch64:aarch64 | \ > + i386:i386 | i386:x32 | \ > + x86_64:x86_64 | \ > + mips:mips | mipsel:mips | \ > + ppc:ppc | ppcemb:ppc | \ > + ppc64:ppc64 | \ > + s390x:s390x) > + return 0 > + ;; > + esac > + return 1 > +} > + This strikes me as another place to mess about with when doing target specific changes to configure. > supported_target() { > case "$1" in > *-softmmu) > @@ -254,6 +270,10 @@ supported_target() { > return 1 > ;; > esac > + if test "$native" = "yes" > + then > + supported_native_target "$1" || return 1 > + fi > test "$tcg" = "yes" && return 0 > supported_kvm_target "$1" && return 0 > supported_xen_target "$1" && return 0 > @@ -390,6 +410,7 @@ cocoa="no" > softmmu="yes" > linux_user="no" > bsd_user="no" > +native="no" > blobs="yes" > pkgversion="" > pie="" > @@ -1112,6 +1133,8 @@ for opt do > cocoa="yes" ; > audio_drv_list="coreaudio $(echo $audio_drv_list | sed s,coreaudio,,g)" > ;; > + --native) native="yes" > + ;; > --disable-system) softmmu="no" > ;; > --enable-system) softmmu="yes" > @@ -1540,6 +1563,7 @@ Advanced options (experts only): > xen pv domain builder > --enable-debug-stack-usage > track the maximum stack usage of stacks created > by qemu_alloc_stack > + --native only enable the softmmu target matching host > architecture > > Optional features, enabled with --enable-FEATURE and > disabled with --disable-FEATURE, default is enabled if available: -- Alex Bennée