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

Message ID 4fc439b83d4974f15558cf6963b500862d0a85bc.1504993178.git.yann.morin.1998@free.fr
State New
Headers show
  • [01/49,v2] package/asterisk: new package
Related show

Commit Message

Yann E. MORIN Sept. 9, 2017, 9:39 p.m.
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@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
 	--without-newt \
-	--without-usb \
 	--without-pcap \
-	--without-libusbx \
 	--without-libusb \
 	--without-selinux \
 	--without-ppp \
+# 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_CONF_OPTS += --with-usb --with-libusbx
+DAHDI_TOOLS_CONF_OPTS += --without-usb --without-libusbx
 $(eval $(autotools-package))