package/bluez5_utils: make tools optional
authorMichael Nosthoff <buildroot@heine.tech>
Sat, 31 Jul 2021 20:38:03 +0000 (22:38 +0200)
committerArnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Mon, 2 Aug 2021 15:06:51 +0000 (17:06 +0200)
The tools are currently always build and installed. In many cases
those tools are not needed in a production system. So make this
step optional. This saves up to 2MB on the target.

Further tweak the deprecated option. It has effects when the --enable-tools
is set as well as when --enable-client is set. So explain this in the
options description and update the install step for gatttool to only be
added when client is enabled.

Signed-off-by: Michael Nosthoff <buildroot@heine.tech>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
package/bluez5_utils/Config.in
package/bluez5_utils/bluez5_utils.mk

index 40973e13cd2f4b669d2188329637b2c4f0c280ad..30e70fa03f1c0489e644bd8ea768309ef4b3b9fd 100644 (file)
@@ -43,13 +43,23 @@ config BR2_PACKAGE_BLUEZ5_UTILS_MONITOR
        help
          Build monitor utility btmon.
 
+config BR2_PACKAGE_BLUEZ5_UTILS_TOOLS
+       bool "build tools"
+       help
+         Build tools like bluemoon, btattach, hex2hcd, l2test,
+         l2ping, mpris-proxy, rctest.
+
 config BR2_PACKAGE_BLUEZ5_UTILS_DEPRECATED
        bool "install deprecated tools"
-       depends on BR2_PACKAGE_BLUEZ5_UTILS_CLIENT
+       depends on BR2_PACKAGE_BLUEZ5_UTILS_CLIENT || BR2_PACKAGE_BLUEZ5_UTILS_TOOLS
        help
-         Build deprecated tools. These currently include:
+         Build deprecated tools.
+
+         When "build tools" is selected these tools are installed:
          hciattach, hciconfig, hcitool, hcidump, rfcomm, sdptool,
-         ciptool, gatttool.
+         ciptool.
+
+         When CLI client is enabled "gatttool" is installed.
 
 config BR2_PACKAGE_BLUEZ5_UTILS_EXPERIMENTAL
        bool "build experimental tools"
index 3551b14a690647d3cc2c85703fb4c19d3bf2616d..5f5a7f44c9ecd9ddbcc97dd95fdbdd83cffe2a93 100644 (file)
@@ -20,7 +20,6 @@ BLUEZ5_UTILS_DEPENDENCIES = \
        libglib2
 
 BLUEZ5_UTILS_CONF_OPTS = \
-       --enable-tools \
        --enable-library \
        --disable-cups \
        --disable-manpages \
@@ -46,6 +45,12 @@ else
 BLUEZ5_UTILS_CONF_OPTS += --disable-monitor
 endif
 
+ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_TOOLS),y)
+BLUEZ5_UTILS_CONF_OPTS += --enable-tools
+else
+BLUEZ5_UTILS_CONF_OPTS += --disable-tools
+endif
+
 # experimental plugins
 ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_EXPERIMENTAL),y)
 BLUEZ5_UTILS_CONF_OPTS += --enable-experimental
@@ -125,12 +130,16 @@ else
 BLUEZ5_UTILS_CONF_OPTS += --disable-sixaxis
 endif
 
-# install gatttool (For some reason upstream choose not to do it by default)
 ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_DEPRECATED),y)
+# install gatttool (For some reason upstream choose not to do it by default)
+# gattool depends on the client for readline
+ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_CLIENT),y)
 define BLUEZ5_UTILS_INSTALL_GATTTOOL
        $(INSTALL) -D -m 0755 $(@D)/attrib/gatttool $(TARGET_DIR)/usr/bin/gatttool
 endef
 BLUEZ5_UTILS_POST_INSTALL_TARGET_HOOKS += BLUEZ5_UTILS_INSTALL_GATTTOOL
+endif
+
 # hciattach_bcm43xx defines default firmware path in `/etc/firmware`, but
 # Broadcom firmware blobs are usually located in `/lib/firmware`.
 BLUEZ5_UTILS_CONF_ENV += \