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