123 lines
3.4 KiB
Makefile
123 lines
3.4 KiB
Makefile
# Makefile directives for Apache Mynewt NimBLE component
|
|
|
|
ifeq ($(MICROPY_BLUETOOTH_NIMBLE),1)
|
|
|
|
EXTMOD_DIR = extmod
|
|
NIMBLE_EXTMOD_DIR = $(EXTMOD_DIR)/nimble
|
|
|
|
SRC_EXTMOD_C += $(NIMBLE_EXTMOD_DIR)/modbluetooth_nimble.c
|
|
|
|
CFLAGS_EXTMOD += -DMICROPY_BLUETOOTH_NIMBLE=1
|
|
|
|
# Use NimBLE from the submodule in lib/mynewt-nimble by default,
|
|
# allowing a port to use their own system version (e.g. ESP32).
|
|
MICROPY_BLUETOOTH_NIMBLE_BINDINGS_ONLY ?= 0
|
|
|
|
CFLAGS_EXTMOD += -DMICROPY_BLUETOOTH_NIMBLE_BINDINGS_ONLY=$(MICROPY_BLUETOOTH_NIMBLE_BINDINGS_ONLY)
|
|
|
|
ifeq ($(MICROPY_BLUETOOTH_NIMBLE_BINDINGS_ONLY),0)
|
|
|
|
GIT_SUBMODULES += lib/mynewt-nimble
|
|
|
|
# On all ports where we provide the full implementation (i.e. not just
|
|
# bindings like on ESP32), then we don't need to use the ringbuffer. In this
|
|
# case, all NimBLE events are run by the MicroPython scheduler. On Unix, the
|
|
# scheduler is also responsible for polling the UART, whereas on STM32 the
|
|
# UART is also polled by the RX IRQ.
|
|
CFLAGS_EXTMOD += -DMICROPY_PY_BLUETOOTH_USE_SYNC_EVENTS=1
|
|
|
|
# Without the ringbuffer, and with the full implementation, we can also
|
|
# enable pairing and bonding. This requires both synchronous events and
|
|
# some customisation of the key store.
|
|
CFLAGS_EXTMOD += -DMICROPY_PY_BLUETOOTH_ENABLE_PAIRING_BONDING=1
|
|
|
|
NIMBLE_LIB_DIR = lib/mynewt-nimble
|
|
|
|
SRC_THIRDPARTY_C += $(addprefix $(NIMBLE_LIB_DIR)/, \
|
|
$(addprefix ext/tinycrypt/src/, \
|
|
aes_encrypt.c \
|
|
cmac_mode.c \
|
|
ecc.c \
|
|
ecc_dh.c \
|
|
utils.c \
|
|
) \
|
|
nimble/host/services/gap/src/ble_svc_gap.c \
|
|
nimble/host/services/gatt/src/ble_svc_gatt.c \
|
|
$(addprefix nimble/host/src/, \
|
|
ble_att.c \
|
|
ble_att_clt.c \
|
|
ble_att_cmd.c \
|
|
ble_att_svr.c \
|
|
ble_eddystone.c \
|
|
ble_gap.c \
|
|
ble_gattc.c \
|
|
ble_gatts.c \
|
|
ble_hs_adv.c \
|
|
ble_hs_atomic.c \
|
|
ble_hs.c \
|
|
ble_hs_cfg.c \
|
|
ble_hs_conn.c \
|
|
ble_hs_flow.c \
|
|
ble_hs_hci.c \
|
|
ble_hs_hci_cmd.c \
|
|
ble_hs_hci_evt.c \
|
|
ble_hs_hci_util.c \
|
|
ble_hs_id.c \
|
|
ble_hs_log.c \
|
|
ble_hs_mbuf.c \
|
|
ble_hs_misc.c \
|
|
ble_hs_mqueue.c \
|
|
ble_hs_pvcy.c \
|
|
ble_hs_startup.c \
|
|
ble_hs_stop.c \
|
|
ble_ibeacon.c \
|
|
ble_l2cap.c \
|
|
ble_l2cap_coc.c \
|
|
ble_l2cap_sig.c \
|
|
ble_l2cap_sig_cmd.c \
|
|
ble_monitor.c \
|
|
ble_sm_alg.c \
|
|
ble_sm.c \
|
|
ble_sm_cmd.c \
|
|
ble_sm_lgcy.c \
|
|
ble_sm_sc.c \
|
|
ble_store.c \
|
|
ble_store_util.c \
|
|
ble_uuid.c \
|
|
) \
|
|
nimble/host/util/src/addr.c \
|
|
nimble/transport/uart/src/ble_hci_uart.c \
|
|
$(addprefix porting/nimble/src/, \
|
|
endian.c \
|
|
mem.c \
|
|
nimble_port.c \
|
|
os_mbuf.c \
|
|
os_mempool.c \
|
|
os_msys_init.c \
|
|
) \
|
|
)
|
|
# nimble/host/store/ram/src/ble_store_ram.c \
|
|
|
|
SRC_THIRDPARTY_C += $(addprefix $(NIMBLE_EXTMOD_DIR)/, \
|
|
nimble/nimble_npl_os.c \
|
|
hal/hal_uart.c \
|
|
)
|
|
|
|
INC += -I$(TOP)/$(NIMBLE_EXTMOD_DIR)
|
|
INC += -I$(TOP)/$(NIMBLE_LIB_DIR)
|
|
INC += -I$(TOP)/$(NIMBLE_LIB_DIR)/ext/tinycrypt/include
|
|
INC += -I$(TOP)/$(NIMBLE_LIB_DIR)/nimble/host/include
|
|
INC += -I$(TOP)/$(NIMBLE_LIB_DIR)/nimble/host/services/gap/include
|
|
INC += -I$(TOP)/$(NIMBLE_LIB_DIR)/nimble/host/services/gatt/include
|
|
INC += -I$(TOP)/$(NIMBLE_LIB_DIR)/nimble/host/store/ram/include
|
|
INC += -I$(TOP)/$(NIMBLE_LIB_DIR)/nimble/host/util/include
|
|
INC += -I$(TOP)/$(NIMBLE_LIB_DIR)/nimble/include
|
|
INC += -I$(TOP)/$(NIMBLE_LIB_DIR)/nimble/transport/uart/include
|
|
INC += -I$(TOP)/$(NIMBLE_LIB_DIR)/porting/nimble/include
|
|
|
|
$(BUILD)/$(NIMBLE_LIB_DIR)/%.o: CFLAGS += -Wno-maybe-uninitialized -Wno-pointer-arith -Wno-unused-but-set-variable -Wno-format -Wno-sign-compare -Wno-old-style-declaration
|
|
|
|
endif
|
|
|
|
endif
|