aboutsummaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2012-11-30 16:02:11 +0100
committerGerd Hoffmann <kraxel@redhat.com>2013-04-16 12:04:09 +0200
commit2b2325ff6491224a42e1fec99b1c39fbc521c95c (patch)
tree995a7707b94bee56d11fc3a2f526ffe936a922c9 /configure
parenta67188743bc30a3ad1358b8cd0a2a3cb64c10ff9 (diff)
use libusb for usb-host
Reimplement usb-host on top of libusb. Reasons to do this: (1) Largely rewritten from scratch, nice opportunity to kill historical cruft. (2) Offload usbfs handling to libusb. (3) Have a single portable code base instead of bsd + linux variants. (4) Bring usb-host support to any platform supported by libusbx. For now this goes side-by-side to the existing code. That is only to simplify regression testing though, at the end of the day I want remove the old code and support libusb exclusively. Merge early in 1.5 cycle, remove the old code after 1.5 release or something like this. Thanks to qdev the old and new code can coexist nicely on linux. Just use "-device usb-host-linux" to use the old linux driver instead of the libusb one (which takes over the "usb-host" name). The bsd driver isn't qdev'ified so it isn't that easy for bsd. I didn't bother making it runtime switchable, so you have to rebuild qemu with --disable-libusb to get back the old code. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure36
1 files changed, 36 insertions, 0 deletions
diff --git a/configure b/configure
index 0788e27951..4c4f6f6de4 100755
--- a/configure
+++ b/configure
@@ -226,6 +226,7 @@ trace_file="trace"
spice=""
rbd=""
smartcard_nss=""
+libusb=""
usb_redir=""
glx=""
zlib="yes"
@@ -890,6 +891,10 @@ for opt do
;;
--enable-smartcard-nss) smartcard_nss="yes"
;;
+ --disable-libusb) libusb="no"
+ ;;
+ --enable-libusb) libusb="yes"
+ ;;
--disable-usb-redir) usb_redir="no"
;;
--enable-usb-redir) usb_redir="yes"
@@ -1175,6 +1180,8 @@ echo " --disable-libiscsi disable iscsi support"
echo " --enable-libiscsi enable iscsi support"
echo " --disable-smartcard-nss disable smartcard nss support"
echo " --enable-smartcard-nss enable smartcard nss support"
+echo " --disable-libusb disable libusb (for usb passthrough)"
+echo " --enable-libusb enable libusb (for usb passthrough)"
echo " --disable-usb-redir disable usb network redirection support"
echo " --enable-usb-redir enable usb network redirection support"
echo " --disable-guest-agent disable building of the QEMU Guest Agent"
@@ -3005,6 +3012,23 @@ EOF
fi
fi
+# check for libusb
+if test "$libusb" != "no" ; then
+ if $pkg_config libusb-1.0 >/dev/null 2>&1 ; then
+ libusb="yes"
+ usb="libusb"
+ libusb_cflags=$($pkg_config --cflags libusb-1.0 2>/dev/null)
+ libusb_libs=$($pkg_config --libs libusb-1.0 2>/dev/null)
+ QEMU_CFLAGS="$QEMU_CFLAGS $libusb_cflags"
+ libs_softmmu="$libs_softmmu $libusb_libs"
+ else
+ if test "$libusb" = "yes"; then
+ feature_not_found "libusb"
+ fi
+ libusb="no"
+ fi
+fi
+
# check for usbredirparser for usb network redirection support
if test "$usb_redir" != "no" ; then
if $pkg_config --atleast-version=0.6 libusbredirparser-0.5 >/dev/null 2>&1 ; then
@@ -3516,6 +3540,7 @@ echo "spice support $spice ($spice_protocol_version/$spice_server_version)"
echo "rbd support $rbd"
echo "xfsctl support $xfs"
echo "nss used $smartcard_nss"
+echo "libusb $libusb"
echo "usb net redir $usb_redir"
echo "GLX support $glx"
echo "libiscsi support $libiscsi"
@@ -3823,6 +3848,10 @@ if test "$smartcard_nss" = "yes" ; then
echo "libcacard_cflags=$libcacard_cflags" >> $config_host_mak
fi
+if test "$libusb" = "yes" ; then
+ echo "CONFIG_USB_LIBUSB=y" >> $config_host_mak
+fi
+
if test "$usb_redir" = "yes" ; then
echo "CONFIG_USB_REDIR=y" >> $config_host_mak
fi
@@ -3907,6 +3936,13 @@ linux)
bsd)
echo "HOST_USB=bsd" >> $config_host_mak
;;
+libusb)
+ if test "$linux" = "yes"; then
+ echo "HOST_USB=libusb linux legacy" >> $config_host_mak
+ else
+ echo "HOST_USB=libusb legacy" >> $config_host_mak
+ fi
+;;
*)
echo "HOST_USB=stub" >> $config_host_mak
;;