1################################################################################ 2# 3# bluez5_utils 4# 5################################################################################ 6 7# Keep the version and patches in sync with bluez5_utils-headers 8BLUEZ5_UTILS_VERSION = 5.75 9BLUEZ5_UTILS_SOURCE = bluez-$(BLUEZ5_UTILS_VERSION).tar.xz 10BLUEZ5_UTILS_SITE = $(BR2_KERNEL_MIRROR)/linux/bluetooth 11# 0001-configure.ac-Fix-disable-cups.patch 12# 0002-configure.ac-fix-sixaxis-build-without-tools.patch 13BLUEZ5_UTILS_AUTORECONF = YES 14BLUEZ5_UTILS_INSTALL_STAGING = YES 15BLUEZ5_UTILS_LICENSE = GPL-2.0+, LGPL-2.1+ 16BLUEZ5_UTILS_LICENSE_FILES = COPYING COPYING.LIB 17BLUEZ5_UTILS_CPE_ID_VENDOR = bluez 18BLUEZ5_UTILS_CPE_ID_PRODUCT = bluez 19 20BLUEZ5_UTILS_DEPENDENCIES = \ 21 $(if $(BR2_PACKAGE_BLUEZ5_UTILS_HEADERS),bluez5_utils-headers) \ 22 dbus \ 23 libglib2 24 25BLUEZ5_UTILS_CONF_OPTS = \ 26 --enable-library \ 27 --disable-cups \ 28 --disable-datafiles \ 29 --disable-manpages \ 30 --disable-asan \ 31 --disable-lsan \ 32 --disable-ubsan \ 33 --disable-pie \ 34 --with-dbusconfdir=/etc 35 36ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_OBEX),y) 37BLUEZ5_UTILS_CONF_OPTS += --enable-obex 38BLUEZ5_UTILS_DEPENDENCIES += libical 39else 40BLUEZ5_UTILS_CONF_OPTS += --disable-obex 41endif 42 43ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_CLIENT),y) 44BLUEZ5_UTILS_CONF_OPTS += --enable-client 45BLUEZ5_UTILS_DEPENDENCIES += readline 46else 47BLUEZ5_UTILS_CONF_OPTS += --disable-client 48endif 49 50ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_MONITOR),y) 51BLUEZ5_UTILS_CONF_OPTS += --enable-monitor 52else 53BLUEZ5_UTILS_CONF_OPTS += --disable-monitor 54endif 55 56ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_TOOLS),y) 57BLUEZ5_UTILS_CONF_OPTS += --enable-tools 58else 59BLUEZ5_UTILS_CONF_OPTS += --disable-tools 60endif 61 62# experimental plugins 63ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_EXPERIMENTAL),y) 64BLUEZ5_UTILS_CONF_OPTS += --enable-experimental 65else 66BLUEZ5_UTILS_CONF_OPTS += --disable-experimental 67endif 68 69# enable audio plugins (a2dp and avrcp) 70ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_AUDIO),y) 71BLUEZ5_UTILS_CONF_OPTS += \ 72 --enable-a2dp \ 73 --enable-avrcp \ 74 --enable-bap \ 75 --enable-mcp \ 76 --enable-vcp 77else 78BLUEZ5_UTILS_CONF_OPTS += \ 79 --disable-a2dp \ 80 --disable-avrcp \ 81 --disable-bap \ 82 --disable-mcp \ 83 --disable-vcp 84endif 85 86# enable health plugin 87ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HEALTH),y) 88BLUEZ5_UTILS_CONF_OPTS += --enable-health 89else 90BLUEZ5_UTILS_CONF_OPTS += --disable-health 91endif 92 93# enable hid plugin 94ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HID),y) 95BLUEZ5_UTILS_CONF_OPTS += --enable-hid 96else 97BLUEZ5_UTILS_CONF_OPTS += --disable-hid 98endif 99 100# enable hog plugin 101ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HOG),y) 102BLUEZ5_UTILS_CONF_OPTS += --enable-hog 103else 104BLUEZ5_UTILS_CONF_OPTS += --disable-hog 105endif 106 107# enable mesh profile 108ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_MESH),y) 109BLUEZ5_UTILS_CONF_OPTS += --enable-external-ell --enable-mesh 110BLUEZ5_UTILS_DEPENDENCIES += ell json-c readline 111else 112BLUEZ5_UTILS_CONF_OPTS += --disable-external-ell --disable-mesh 113endif 114 115# enable midi profile 116ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_MIDI),y) 117BLUEZ5_UTILS_CONF_OPTS += --enable-midi 118BLUEZ5_UTILS_DEPENDENCIES += alsa-lib 119else 120BLUEZ5_UTILS_CONF_OPTS += --disable-midi 121endif 122 123# enable network plugin 124ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_NETWORK),y) 125BLUEZ5_UTILS_CONF_OPTS += --enable-network 126else 127BLUEZ5_UTILS_CONF_OPTS += --disable-network 128endif 129 130# enable nfc plugin 131ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_NFC),y) 132BLUEZ5_UTILS_CONF_OPTS += --enable-nfc 133else 134BLUEZ5_UTILS_CONF_OPTS += --disable-nfc 135endif 136 137# enable sap plugin 138ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_SAP),y) 139BLUEZ5_UTILS_CONF_OPTS += --enable-sap 140else 141BLUEZ5_UTILS_CONF_OPTS += --disable-sap 142endif 143 144# enable sixaxis plugin 145ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_SIXAXIS),y) 146BLUEZ5_UTILS_CONF_OPTS += --enable-sixaxis 147else 148BLUEZ5_UTILS_CONF_OPTS += --disable-sixaxis 149endif 150 151ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_DEPRECATED),y) 152# install gatttool (For some reason upstream choose not to do it by default) 153# gattool depends on the client for readline 154ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_CLIENT),y) 155define BLUEZ5_UTILS_INSTALL_GATTTOOL 156 $(INSTALL) -D -m 0755 $(@D)/attrib/gatttool $(TARGET_DIR)/usr/bin/gatttool 157endef 158BLUEZ5_UTILS_POST_INSTALL_TARGET_HOOKS += BLUEZ5_UTILS_INSTALL_GATTTOOL 159endif 160 161# hciattach_bcm43xx defines default firmware path in `/etc/firmware`, but 162# Broadcom firmware blobs are usually located in `/lib/firmware`. 163BLUEZ5_UTILS_CONF_ENV += \ 164 CPPFLAGS='$(TARGET_CPPFLAGS) -DFIRMWARE_DIR=\"/lib/firmware\"' 165BLUEZ5_UTILS_CONF_OPTS += --enable-deprecated 166else 167BLUEZ5_UTILS_CONF_OPTS += --disable-deprecated 168endif 169 170# enable test 171ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_TEST),y) 172BLUEZ5_UTILS_CONF_OPTS += --enable-test 173else 174BLUEZ5_UTILS_CONF_OPTS += --disable-test 175endif 176 177# enable hid2hci tool 178ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_TOOLS_HID2HCI),y) 179BLUEZ5_UTILS_CONF_OPTS += --enable-hid2hci 180else 181BLUEZ5_UTILS_CONF_OPTS += --disable-hid2hci 182endif 183 184# use udev if available 185ifeq ($(BR2_PACKAGE_HAS_UDEV),y) 186BLUEZ5_UTILS_CONF_OPTS += --enable-udev 187BLUEZ5_UTILS_DEPENDENCIES += udev 188else 189BLUEZ5_UTILS_CONF_OPTS += --disable-udev 190endif 191 192# integrate with systemd if available 193ifeq ($(BR2_PACKAGE_SYSTEMD),y) 194BLUEZ5_UTILS_CONF_OPTS += --enable-systemd 195BLUEZ5_UTILS_DEPENDENCIES += systemd 196else 197BLUEZ5_UTILS_CONF_OPTS += --disable-systemd 198endif 199 200define BLUEZ5_UTILS_INSTALL_INIT_SYSV 201 $(INSTALL) -m 0755 -D package/bluez5_utils/S40bluetoothd \ 202 $(TARGET_DIR)/etc/init.d/S40bluetoothd 203endef 204 205$(eval $(autotools-package)) 206