Am 24.01.2014 02:39, schrieb Stewart Smith: > This should make it (slightly) easier to discover configure options. > I've tried to separate out build options (e.g. gcov) from feature > options (such as gtk). > > Signed-off-by: Stewart Smith <stew...@linux.vnet.ibm.com> > --- > configure | 174 > ++++++++++++++++++++++++++++++++------------------------------ > 1 file changed, 89 insertions(+), 85 deletions(-) > > diff --git a/configure b/configure > index e61708a..c225291 100755 > --- a/configure > +++ b/configure > @@ -1102,7 +1102,7 @@ Standard options: > $(echo Available targets: $default_target_list | \ > fold -s -w 53 | sed -e 's/^/ /') > > -Advanced options (experts only): > +Advanced options, build (experts only): > --source-path=PATH path of source code [$source_path] > --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix] > --cc=CC use C compiler CC [$cc] > @@ -1135,16 +1135,18 @@ Advanced options (experts only): > --disable-sparse disable sparse checker (default) > --disable-strip disable stripping binaries > --disable-werror disable compilation abort on warning > - --disable-sdl disable SDL > - --enable-sdl enable SDL > - --disable-gtk disable gtk UI > - --enable-gtk enable gtk UI > - --disable-virtfs disable VirtFS > - --enable-virtfs enable VirtFS > - --disable-vnc disable VNC > - --enable-vnc enable VNC > - --disable-cocoa disable Cocoa (Mac OS X only) > - --enable-cocoa enable Cocoa (default on Mac OS X) > + --disable-attr disables attr and xattr support > + --enable-attr enable attr and xattr support > + --enable-pie build Position Independent Executables > + --disable-pie do not build Position Independent Executables > + --cpu=CPU Build for host CPU [$cpu] > + --disable-blobs disable installing provided firmware blobs > + --enable-gcov enable test coverage analysis with gcov > + --gcov=GCOV use specified gcov [$gcov_tool] > + --enable-docs enable documentation build > + --disable-docs disable documentation build > + > +Advanced options, features (experts only): > --audio-drv-list=LIST set audio drivers list: > Available drivers: $audio_possible_drivers > --block-drv-whitelist=L Same as --block-drv-rw-whitelist=L > @@ -1154,105 +1156,107 @@ Advanced options (experts only): > --block-drv-ro-whitelist=L > set block driver read-only whitelist > (affects only QEMU, not qemu-img) > - --disable-xen disable xen backend driver support > - --enable-xen enable xen backend driver support > - --disable-xen-pci-passthrough > - --enable-xen-pci-passthrough > --disable-brlapi disable BrlAPI > --enable-brlapi enable BrlAPI > - --disable-vnc-tls disable TLS encryption for VNC server > - --enable-vnc-tls enable TLS encryption for VNC server > - --disable-vnc-sasl disable SASL encryption for VNC server > - --enable-vnc-sasl enable SASL encryption for VNC server > - --disable-vnc-jpeg disable JPEG lossy compression for VNC server > - --enable-vnc-jpeg enable JPEG lossy compression for VNC server > - --disable-vnc-png disable PNG compression for VNC server (default) > - --enable-vnc-png enable PNG compression for VNC server > - --disable-vnc-ws disable Websockets support for VNC server > - --enable-vnc-ws enable Websockets support for VNC server > - --disable-curses disable curses output > - --enable-curses enable curses output > + --disable-bluez disable bluez stack connectivity > + --enable-bluez enable bluez stack connectivity > + --disable-cap-ng disable libcap-ng support > + --enable-cap-ng enable libcap-ng support > + --disable-cocoa disable Cocoa (Mac OS X only) > + --enable-cocoa enable Cocoa (default on Mac OS X) > + --with-coroutine=BACKEND coroutine backend. Supported options: > + gthread, ucontext, sigaltstack, windows > + --disable-coroutine-pool disable coroutine freelist (worse performance) > + --enable-coroutine-pool enable coroutine freelist (better performance) > --disable-curl disable curl connectivity > --enable-curl enable curl connectivity > + --disable-curses disable curses output > + --enable-curses enable curses output > --disable-fdt disable fdt device tree > --enable-fdt enable fdt device tree > - --disable-bluez disable bluez stack connectivity > - --enable-bluez enable bluez stack connectivity > - --disable-slirp disable SLIRP userspace network connectivity > - --disable-kvm disable KVM acceleration support > - --enable-kvm enable KVM acceleration support > + --fmod-lib path to FMOD library > + --fmod-inc path to FMOD includes > + --enable-glusterfs enable GlusterFS backend > + --disable-glusterfs disable GlusterFS backend > + --disable-gtk disable gtk UI > + --enable-gtk enable gtk UI > + --enable-guest-base enable GUEST_BASE support for usermode > + emulation targets > + --disable-guest-base disable GUEST_BASE support > --disable-rdma disable RDMA-based migration support > --enable-rdma enable RDMA-based migration support > - --enable-tcg-interpreter enable TCG with bytecode interpreter (TCI) > + --disable-kvm disable KVM acceleration support > + --enable-kvm enable KVM acceleration support > + --disable-libiscsi disable iscsi support > + --enable-libiscsi enable iscsi support > + --disable-libssh2 disable ssh block device support > + --enable-libssh2 enable ssh block device support > + --disable-libusb disable libusb (for usb passthrough) > + --enable-libusb enable libusb (for usb passthrough) > + --disable-linux-aio disable Linux AIO support > + --enable-linux-aio enable Linux AIO support > + --disable-netmap disable support for netmap network > + --enable-netmap enable support for netmap network > + --enable-rbd enable building the rados block device (rbd) > + --disable-sdl disable SDL > + --enable-sdl enable SDL > + --disable-seccomp disable seccomp support > + --enable-seccomp enables seccomp support > + --disable-slirp disable SLIRP userspace network connectivity > + --disable-smartcard-nss disable smartcard nss support > + --enable-smartcard-nss enable smartcard nss support > + --disable-spice disable spice > + --enable-spice enable spice > --enable-system enable all system emulation targets > --disable-system disable all system emulation targets > + --enable-tcg-interpreter enable TCG with bytecode interpreter (TCI) > + --enable-tpm enable TPM support > + --enable-trace-backend=B Set trace backend > + Available backends: $($python > $source_path/scripts/tracetool.py --list-backends) > + --with-trace-file=NAME Full PATH,NAME of file to store traces > + Default:trace-<pid> > --enable-user enable supported user emulation targets > --disable-user disable all user emulation targets > - --enable-linux-user enable all linux usermode emulation targets > - --disable-linux-user disable all linux usermode emulation targets > --enable-bsd-user enable all BSD usermode emulation targets > --disable-bsd-user disable all BSD usermode emulation targets > - --enable-guest-base enable GUEST_BASE support for usermode > - emulation targets > - --disable-guest-base disable GUEST_BASE support > - --enable-pie build Position Independent Executables > - --disable-pie do not build Position Independent Executables > - --fmod-lib path to FMOD library > - --fmod-inc path to FMOD includes > + --enable-linux-user enable all linux usermode emulation targets > + --disable-linux-user disable all linux usermode emulation targets > --oss-lib path to OSS library > --enable-uname-release=R Return R for uname -r in usermode emulation > - --cpu=CPU Build for host CPU [$cpu] > + --disable-usb-redir disable usb network redirection support > + --enable-usb-redir enable usb network redirection support > --disable-uuid disable uuid support > --enable-uuid enable uuid support > --disable-vde disable support for vde network > --enable-vde enable support for vde network > - --disable-netmap disable support for netmap network > - --enable-netmap enable support for netmap network > - --disable-linux-aio disable Linux AIO support > - --enable-linux-aio enable Linux AIO support > - --disable-cap-ng disable libcap-ng support > - --enable-cap-ng enable libcap-ng support > - --disable-attr disables attr and xattr support > - --enable-attr enable attr and xattr support > - --disable-blobs disable installing provided firmware blobs > - --enable-docs enable documentation build > - --disable-docs disable documentation build > + --disable-vhdx disables support for the Microsoft VHDX image > format > + --enable-vhdx enable support for the Microsoft VHDX image format > --disable-vhost-net disable vhost-net acceleration support > --enable-vhost-net enable vhost-net acceleration support > - --enable-trace-backend=B Set trace backend > - Available backends: $($python > $source_path/scripts/tracetool.py --list-backends) > - --with-trace-file=NAME Full PATH,NAME of file to store traces > - Default:trace-<pid> > - --disable-spice disable spice > - --enable-spice enable spice > - --enable-rbd enable building the rados block device (rbd) > - --disable-libiscsi disable iscsi support > - --enable-libiscsi enable iscsi support > - --disable-smartcard-nss disable smartcard nss support > - --enable-smartcard-nss enable smartcard nss support > - --disable-libusb disable libusb (for usb passthrough) > - --enable-libusb enable libusb (for usb passthrough) > - --disable-usb-redir disable usb network redirection support > - --enable-usb-redir enable usb network redirection support > + --disable-virtfs disable VirtFS > + --enable-virtfs enable VirtFS > + --disable-vnc disable VNC > + --enable-vnc enable VNC > + --disable-vnc-jpeg disable JPEG lossy compression for VNC server > + --enable-vnc-jpeg enable JPEG lossy compression for VNC server > + --disable-vnc-png disable PNG compression for VNC server (default) > + --enable-vnc-png enable PNG compression for VNC server > + --disable-vnc-sasl disable SASL encryption for VNC server > + --enable-vnc-sasl enable SASL encryption for VNC server > + --disable-vnc-tls disable TLS encryption for VNC server > + --enable-vnc-tls enable TLS encryption for VNC server > + --disable-vnc-ws disable Websockets support for VNC server > + --enable-vnc-ws enable Websockets support for VNC server > + --with-win-sdk=SDK-path path to Windows Platform SDK (to build VSS .tlb) > + --disable-xen disable xen backend driver support > + --enable-xen enable xen backend driver support > + --disable-xen-pci-passthrough > + --enable-xen-pci-passthrough > + > +Advanced options, Guest Agent (experts only): > --disable-guest-agent disable building of the QEMU Guest Agent > --enable-guest-agent enable building of the QEMU Guest Agent > --with-vss-sdk=SDK-path enable Windows VSS support in QEMU Guest Agent > - --with-win-sdk=SDK-path path to Windows Platform SDK (to build VSS .tlb) > - --disable-seccomp disable seccomp support > - --enable-seccomp enables seccomp support > - --with-coroutine=BACKEND coroutine backend. Supported options: > - gthread, ucontext, sigaltstack, windows > - --disable-coroutine-pool disable coroutine freelist (worse performance) > - --enable-coroutine-pool enable coroutine freelist (better performance) > - --enable-glusterfs enable GlusterFS backend > - --disable-glusterfs disable GlusterFS backend > - --enable-gcov enable test coverage analysis with gcov > - --gcov=GCOV use specified gcov [$gcov_tool] > - --enable-tpm enable TPM support > - --disable-libssh2 disable ssh block device support > - --enable-libssh2 enable ssh block device support > - --disable-vhdx disables support for the Microsoft VHDX image > format > - --enable-vhdx enable support for the Microsoft VHDX image format > > NOTE: The object files are built at the place where configure is launched > EOF >
May I suggest a different first step to make the help output more readable? Do we really need two lines of help output for each pair of --enable-xxx and --disable-xxx? It would be sufficient to document only one variant if the other variant is always supported, too. My favourite is a pattern like this: --disable-xxx disable xxx support (default: enabled) --disable-xxx disable xxx support (default: auto detected) --disable-xxx disable xxx support (default) A final hint could say "Instead of --disable-xxx you can also enforce a feature with --enable-xxx". I like alphabetized sorts but would keep groups like the different selections for the gui interfaces. Those could be largely reduced if we used libvnc. That would also fix bugs and reduce the efforts needed for maintainance of QEMU, but that is a different topic :-) Stefan