1# Makefile directives for BlueKitchen BTstack
2
3ifeq ($(MICROPY_BLUETOOTH_BTSTACK),1)
4
5MICROPY_BLUETOOTH_BTSTACK_USB ?= 0
6
7BTSTACK_EXTMOD_DIR = extmod/btstack
8
9EXTMOD_SRC_C += extmod/btstack/modbluetooth_btstack.c
10
11INC += -I$(TOP)/$(BTSTACK_EXTMOD_DIR)
12
13CFLAGS_MOD += -DMICROPY_BLUETOOTH_BTSTACK=1
14CFLAGS_MOD += -DMICROPY_PY_BLUETOOTH_USE_SYNC_EVENTS=1
15CFLAGS_MOD += -DMICROPY_PY_BLUETOOTH_ENABLE_PAIRING_BONDING=1
16
17BTSTACK_DIR = $(TOP)/lib/btstack
18
19ifneq ($(wildcard $(BTSTACK_DIR)/src),)
20
21include $(BTSTACK_DIR)/src/Makefile.inc
22include $(BTSTACK_DIR)/src/ble/Makefile.inc
23
24INC += -I$(BTSTACK_DIR)/src
25INC += -I$(BTSTACK_DIR)/3rd-party/bluedroid/decoder/include
26INC += -I$(BTSTACK_DIR)/3rd-party/bluedroid/encoder/include
27INC += -I$(BTSTACK_DIR)/3rd-party/md5
28INC += -I$(BTSTACK_DIR)/3rd-party/yxml
29
30SRC_BTSTACK = \
31	$(addprefix lib/btstack/src/, $(SRC_FILES)) \
32	$(addprefix lib/btstack/src/ble/, $(filter-out %_tlv.c, $(SRC_BLE_FILES))) \
33
34ifeq ($(MICROPY_BLUETOOTH_BTSTACK_USB),1)
35ifeq ($(MICROPY_BLUETOOTH_BTSTACK_H4),1)
36	$(error Cannot specifiy both MICROPY_BLUETOOTH_BTSTACK_USB and MICROPY_BLUETOOTH_BTSTACK_H4)
37endif
38endif
39
40ifeq ($(MICROPY_BLUETOOTH_BTSTACK_USB),1)
41SRC_BTSTACK += \
42	lib/btstack/platform/libusb/hci_transport_h2_libusb.c
43
44CFLAGS_MOD += -DMICROPY_BLUETOOTH_BTSTACK_USB=1
45
46CFLAGS  += $(shell pkg-config libusb-1.0 --cflags)
47LDFLAGS += $(shell pkg-config libusb-1.0 --libs)
48endif
49
50ifeq ($(MICROPY_BLUETOOTH_BTSTACK_H4),1)
51SRC_BTSTACK += \
52	lib/btstack/src/hci_transport_h4.c \
53	lib/btstack/chipset/zephyr/btstack_chipset_zephyr.c
54
55EXTMOD_SRC_C += \
56	extmod/btstack/btstack_hci_uart.c \
57
58CFLAGS_MOD += -DMICROPY_BLUETOOTH_BTSTACK_H4=1
59endif
60
61ifeq ($(MICROPY_BLUETOOTH_BTSTACK_ENABLE_CLASSIC),1)
62include $(BTSTACK_DIR)/src/classic/Makefile.inc
63SRC_BTSTACK += \
64	$(addprefix lib/btstack/src/classic/, $(SRC_CLASSIC_FILES))
65endif
66
67LIB_SRC_C += $(SRC_BTSTACK)
68
69# Suppress some warnings.
70BTSTACK_WARNING_CFLAGS = -Wno-old-style-definition -Wno-unused-variable -Wno-unused-parameter -Wno-implicit-fallthrough
71ifneq ($(CC),clang)
72BTSTACK_WARNING_CFLAGS += -Wno-format
73endif
74$(BUILD)/lib/btstack/src/%.o: CFLAGS += $(BTSTACK_WARNING_CFLAGS)
75$(BUILD)/lib/btstack/platform/%.o: CFLAGS += $(BTSTACK_WARNING_CFLAGS)
76
77endif
78endif
79