[Buildroot] [PATCH 22/49 v2] package/dahdi-tools: add USB support

Yann E. MORIN yann.morin.1998 at free.fr
Sat Sep 9 21:39:28 UTC 2017


dahdi-tools can use either libusb-1.0.x or libusb-0.1.x, and Buildroot
packages both, respectively as libusb and as libusb-compat.

However, the terminology used by dahdi-tools is a little bit confusing.
dahdi-tools references libusb-1.0.x as libusbx, while it knows
libusb-0.1.x as just plain libusb.

So, here's a samll summary table;

    Those tools   |       libusb version        |
    know it as... | 0.1.x         | 1.0.x       |
    --------------+---------------+-------------+
    Buildroot     | libusb-compat | libusb      |
    dahdi-tools   | libusb        | libusbx     |

However, in Buildroot, libusb-compat (0.1.x) depends on libusb (1.0.x).
So, whenever libusb-compat is enabled, we can be sure that libusb is
enabled too.

So, from the perspective of dahdi-tools, we need not care about libusb
(0.1.x) since we will always have libusbx (1.0.x).

Ergo, we only care about Buildroot libusb (1.0.x) to decide whether or
not to enable USB support in dahdi-tools with libusbx, while libusb is
always disabled.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
---
 package/dahdi-tools/dahdi-tools.mk | 29 +++++++++++++++++++++++++++--
 1 file changed, 27 insertions(+), 2 deletions(-)

diff --git a/package/dahdi-tools/dahdi-tools.mk b/package/dahdi-tools/dahdi-tools.mk
index e97d944c52..3930968042 100644
--- a/package/dahdi-tools/dahdi-tools.mk
+++ b/package/dahdi-tools/dahdi-tools.mk
@@ -21,12 +21,37 @@ DAHDI_TOOLS_CONF_ENV = PERL=/usr/bin/perl
 
 DAHDI_TOOLS_CONF_OPTS = \
 	--without-newt \
-	--without-usb \
 	--without-pcap \
-	--without-libusbx \
 	--without-libusb \
 	--without-selinux \
 	--without-ppp \
 	--with-perllib=/usr/lib/perl5/$(PERL_VERSION)
 
+# dahdi-tools can use either libusb-1.0.x (libusb in Buildroot)
+# or libusb-0.9.x (libusb-compat in Buildroot). The former is
+# enabled using --with-libusbx, while the latter is enabled using
+# --with-libusb. Both require --with-usb for USB support to be
+# effectively enabled.
+#
+# Note: libsubx was a fork of libusb, which was merged back into
+# libusb for the 1.0.18 release in early 2014, but it looks like
+# dahdi-tools uses the libusbx vs. libusb to differentiate whether
+# to use the 1.0.x vs. 0.9.x libusb. Since in Buildroot, libusb-compat
+# anyway depends on libusb, presence of libusb-compat means that
+# libusb is enabled, so we only support libusb for dahdi-tools.
+#
+# Yet, we must ensure build-ordering in case libusb-compat id enabled.
+#
+# Yes, this is very confusing.
+#
+ifeq ($(BR2_PACKAGE_LIBUSB),y)
+DAHDI_TOOLS_DEPENDENCIES += libusb
+DAHDI_TOOLS_CONF_OPTS += --with-usb --with-libusbx
+ifeq ($(BR2_PACKAGE_LIBUSB_COMPAT),y)
+DAHDI_TOOLS_DEPENDENCIES += libusb-comapt
+endif
+else
+DAHDI_TOOLS_CONF_OPTS += --without-usb --without-libusbx
+endif
+
 $(eval $(autotools-package))
-- 
2.11.0




More information about the buildroot mailing list