1*042d53a7SEvalZerofrom building import * 2*042d53a7SEvalZeroimport rtconfig 3*042d53a7SEvalZero 4*042d53a7SEvalZerocwd = GetCurrentDir() 5*042d53a7SEvalZeropath = [cwd] 6*042d53a7SEvalZerosrc = [] 7*042d53a7SEvalZero 8*042d53a7SEvalZeropath += [ 9*042d53a7SEvalZero cwd + '/nimble/include', 10*042d53a7SEvalZero cwd + '/nimble/host/include', 11*042d53a7SEvalZero cwd + '/nimble/host/src', 12*042d53a7SEvalZero cwd + '/nimble/host/services/ans/include', 13*042d53a7SEvalZero cwd + '/nimble/host/services/bas/include', 14*042d53a7SEvalZero cwd + '/nimble/host/services/bleuart/include', 15*042d53a7SEvalZero cwd + '/nimble/host/services/gap/include', 16*042d53a7SEvalZero cwd + '/nimble/host/services/gatt/include', 17*042d53a7SEvalZero cwd + '/nimble/host/services/ias/include', 18*042d53a7SEvalZero cwd + '/nimble/host/services/lls/include', 19*042d53a7SEvalZero cwd + '/nimble/host/services/tps/include', 20*042d53a7SEvalZero cwd + '/nimble/host/store/ram/include', 21*042d53a7SEvalZero cwd + '/nimble/host/util/include', 22*042d53a7SEvalZero cwd + '/porting/nimble/include', 23*042d53a7SEvalZero cwd + '/porting/npl/rtthread/include'] 24*042d53a7SEvalZero 25*042d53a7SEvalZero# Host stack 26*042d53a7SEvalZerosrc += Split(''' 27*042d53a7SEvalZero nimble/host/src/ble_att.c 28*042d53a7SEvalZero nimble/host/src/ble_att_clt.c 29*042d53a7SEvalZero nimble/host/src/ble_att_cmd.c 30*042d53a7SEvalZero nimble/host/src/ble_att_svr.c 31*042d53a7SEvalZero nimble/host/src/ble_eddystone.c 32*042d53a7SEvalZero nimble/host/src/ble_gap.c 33*042d53a7SEvalZero nimble/host/src/ble_gattc.c 34*042d53a7SEvalZero nimble/host/src/ble_gatts.c 35*042d53a7SEvalZero nimble/host/src/ble_gatts_lcl.c 36*042d53a7SEvalZero nimble/host/src/ble_hs_adv.c 37*042d53a7SEvalZero nimble/host/src/ble_hs_atomic.c 38*042d53a7SEvalZero nimble/host/src/ble_hs.c 39*042d53a7SEvalZero nimble/host/src/ble_hs_cfg.c 40*042d53a7SEvalZero nimble/host/src/ble_hs_conn.c 41*042d53a7SEvalZero nimble/host/src/ble_hs_dbg.c 42*042d53a7SEvalZero nimble/host/src/ble_hs_flow.c 43*042d53a7SEvalZero nimble/host/src/ble_hs_hci.c 44*042d53a7SEvalZero nimble/host/src/ble_hs_hci_cmd.c 45*042d53a7SEvalZero nimble/host/src/ble_hs_hci_evt.c 46*042d53a7SEvalZero nimble/host/src/ble_hs_hci_util.c 47*042d53a7SEvalZero nimble/host/src/ble_hs_id.c 48*042d53a7SEvalZero nimble/host/src/ble_hs_log.c 49*042d53a7SEvalZero nimble/host/src/ble_hs_mbuf.c 50*042d53a7SEvalZero nimble/host/src/ble_hs_mqueue.c 51*042d53a7SEvalZero nimble/host/src/ble_hs_misc.c 52*042d53a7SEvalZero nimble/host/src/ble_hs_pvcy.c 53*042d53a7SEvalZero nimble/host/src/ble_hs_startup.c 54*042d53a7SEvalZero nimble/host/src/ble_hs_stop.c 55*042d53a7SEvalZero nimble/host/src/ble_ibeacon.c 56*042d53a7SEvalZero nimble/host/src/ble_l2cap.c 57*042d53a7SEvalZero nimble/host/src/ble_l2cap_coc.c 58*042d53a7SEvalZero nimble/host/src/ble_l2cap_sig.c 59*042d53a7SEvalZero nimble/host/src/ble_l2cap_sig_cmd.c 60*042d53a7SEvalZero nimble/host/src/ble_monitor.c 61*042d53a7SEvalZero nimble/host/src/ble_sm_alg.c 62*042d53a7SEvalZero nimble/host/src/ble_sm.c 63*042d53a7SEvalZero nimble/host/src/ble_sm_cmd.c 64*042d53a7SEvalZero nimble/host/src/ble_sm_lgcy.c 65*042d53a7SEvalZero nimble/host/src/ble_sm_sc.c 66*042d53a7SEvalZero nimble/host/src/ble_store.c 67*042d53a7SEvalZero nimble/host/src/ble_store_util.c 68*042d53a7SEvalZero nimble/host/src/ble_uuid.c 69*042d53a7SEvalZero nimble/host/services/ans/src/ble_svc_ans.c 70*042d53a7SEvalZero nimble/host/services/bas/src/ble_svc_bas.c 71*042d53a7SEvalZero nimble/host/services/bleuart/src/ble_svc_uart.c 72*042d53a7SEvalZero nimble/host/services/gap/src/ble_svc_gap.c 73*042d53a7SEvalZero nimble/host/services/gatt/src/ble_svc_gatt.c 74*042d53a7SEvalZero nimble/host/services/ias/src/ble_svc_ias.c 75*042d53a7SEvalZero nimble/host/services/lls/src/ble_svc_lls.c 76*042d53a7SEvalZero nimble/host/services/tps/src/ble_svc_tps.c 77*042d53a7SEvalZero nimble/host/store/ram/src/ble_store_ram.c 78*042d53a7SEvalZero nimble/host/util/src/addr.c 79*042d53a7SEvalZero nimble/src/ble_util.c 80*042d53a7SEvalZero ''') 81*042d53a7SEvalZero 82*042d53a7SEvalZero# Few utils and data structures copied from Mynewt 83*042d53a7SEvalZerosrc += Split(''' 84*042d53a7SEvalZero porting/nimble/src/nimble_port.c''') 85*042d53a7SEvalZero 86*042d53a7SEvalZero# Few utils and data structures copied from Mynewt 87*042d53a7SEvalZerosrc += Split(''' 88*042d53a7SEvalZero porting/nimble/src/endian.c 89*042d53a7SEvalZero porting/nimble/src/mem.c 90*042d53a7SEvalZero porting/nimble/src/os_mbuf.c 91*042d53a7SEvalZero porting/nimble/src/os_mempool.c 92*042d53a7SEvalZero porting/nimble/src/os_msys_init.c 93*042d53a7SEvalZero porting/npl/rtthread/src/modlog.c 94*042d53a7SEvalZero porting/npl/rtthread/src/nimble_port_rtthread.c 95*042d53a7SEvalZero porting/npl/rtthread/src/npl_os_rtthread.c 96*042d53a7SEvalZero porting/npl/rtthread/src/npl_shell.c 97*042d53a7SEvalZero ''') 98*042d53a7SEvalZero 99*042d53a7SEvalZero# tinycrypt 100*042d53a7SEvalZeropath += [cwd + '/ext/tinycrypt/include'] 101*042d53a7SEvalZero 102*042d53a7SEvalZerosrc += Split(''' 103*042d53a7SEvalZero ext/tinycrypt/src/aes_decrypt.c 104*042d53a7SEvalZero ext/tinycrypt/src/aes_encrypt.c 105*042d53a7SEvalZero ext/tinycrypt/src/cmac_mode.c 106*042d53a7SEvalZero ext/tinycrypt/src/ecc.c 107*042d53a7SEvalZero ext/tinycrypt/src/ecc_dh.c 108*042d53a7SEvalZero ext/tinycrypt/src/utils.c 109*042d53a7SEvalZero ''') 110*042d53a7SEvalZero 111*042d53a7SEvalZero# controller 112*042d53a7SEvalZeroif GetDepend(['PKG_NIMBLE_CTLR']): 113*042d53a7SEvalZero CPPDEFINES = ['NIMBLE_CFG_CONTROLLER=1'] 114*042d53a7SEvalZeroelse: 115*042d53a7SEvalZero CPPDEFINES = [''] 116*042d53a7SEvalZero 117*042d53a7SEvalZeroif GetDepend(['PKG_NIMBLE_CTLR']): 118*042d53a7SEvalZero path += [ 119*042d53a7SEvalZero cwd + '/nimble/transport/ram/include', 120*042d53a7SEvalZero cwd + '/nimble/controller/include', 121*042d53a7SEvalZero cwd + '/nimble/drivers/nrf52/include'] 122*042d53a7SEvalZero 123*042d53a7SEvalZero src += Split(""" 124*042d53a7SEvalZero nimble/transport/ram/src/ble_hci_ram.c 125*042d53a7SEvalZero nimble/controller/src/ble_ll_sched.c 126*042d53a7SEvalZero nimble/controller/src/ble_ll_xcvr.c 127*042d53a7SEvalZero nimble/controller/src/ble_ll_whitelist.c 128*042d53a7SEvalZero nimble/controller/src/ble_ll_ctrl.c 129*042d53a7SEvalZero nimble/controller/src/ble_ll_hci.c 130*042d53a7SEvalZero nimble/controller/src/ble_ll_supp_cmd.c 131*042d53a7SEvalZero nimble/controller/src/ble_ll_adv.c 132*042d53a7SEvalZero nimble/controller/src/ble_ll_conn.c 133*042d53a7SEvalZero nimble/controller/src/ble_ll_resolv.c 134*042d53a7SEvalZero nimble/controller/src/ble_ll_conn_hci.c 135*042d53a7SEvalZero nimble/controller/src/ble_ll_rand.c 136*042d53a7SEvalZero nimble/controller/src/ble_ll.c 137*042d53a7SEvalZero nimble/controller/src/ble_ll_scan.c 138*042d53a7SEvalZero nimble/controller/src/ble_ll_dtm.c 139*042d53a7SEvalZero nimble/controller/src/ble_ll_hci_ev.c 140*042d53a7SEvalZero nimble/drivers/nrf52/src/ble_hw.c 141*042d53a7SEvalZero nimble/drivers/nrf52/src/ble_phy.c 142*042d53a7SEvalZero porting/nimble/src/os_cputime.c 143*042d53a7SEvalZero porting/nimble/src/os_cputime_pwr2.c 144*042d53a7SEvalZero porting/nimble/src/hal_timer.c 145*042d53a7SEvalZero porting/npl/rtthread/src/nrf5x_isr.c 146*042d53a7SEvalZero """) 147*042d53a7SEvalZero 148*042d53a7SEvalZero# central sample 149*042d53a7SEvalZeroif GetDepend(['PKG_NIMBLE_SAMPLE_CENTRAL']): 150*042d53a7SEvalZero path += [cwd + '/apps/blecent/src'] 151*042d53a7SEvalZero 152*042d53a7SEvalZero src += Split(""" 153*042d53a7SEvalZero apps/blecent/src/blecent.c 154*042d53a7SEvalZero apps/blecent/src/misc.c 155*042d53a7SEvalZero apps/blecent/src/peer.c 156*042d53a7SEvalZero """) 157*042d53a7SEvalZero 158*042d53a7SEvalZero# blecsc sensor 159*042d53a7SEvalZeroif GetDepend(['PKG_NIMBLE_SAMPLE_BLECSC']): 160*042d53a7SEvalZero path += [cwd + '/apps/blecsc/src'] 161*042d53a7SEvalZero 162*042d53a7SEvalZero src += Split(""" 163*042d53a7SEvalZero apps/blecsc/src/blecsc_sens.c 164*042d53a7SEvalZero apps/blecsc/src/gatt_svr.c 165*042d53a7SEvalZero """) 166*042d53a7SEvalZero 167*042d53a7SEvalZero 168*042d53a7SEvalZero# peripheral heart-rate sample 169*042d53a7SEvalZeroif GetDepend(['PKG_NIMBLE_SAMPLE_PER_HR']): 170*042d53a7SEvalZero path += [cwd + '/apps/blehr/src'] 171*042d53a7SEvalZero 172*042d53a7SEvalZero src += Split(""" 173*042d53a7SEvalZero apps/blehr/src/blehr.c 174*042d53a7SEvalZero apps/blehr/src/gatt_svr.c 175*042d53a7SEvalZero """) 176*042d53a7SEvalZero 177*042d53a7SEvalZero# bleprph sample 178*042d53a7SEvalZeroif GetDepend(['PKG_NIMBLE_SAMPLE_PERIPHERAL']): 179*042d53a7SEvalZero path += [cwd + '/apps/bleprph/src'] 180*042d53a7SEvalZero 181*042d53a7SEvalZero src += Split(""" 182*042d53a7SEvalZero apps/bleprph/src/bleprph.c 183*042d53a7SEvalZero apps/bleprph/src/gatt_svr.c 184*042d53a7SEvalZero apps/bleprph/src/misc.c 185*042d53a7SEvalZero """) 186*042d53a7SEvalZero 187*042d53a7SEvalZero# bletest 188*042d53a7SEvalZeroif GetDepend(['PKG_NIMBLE_SAMPLE_BLETEST']): 189*042d53a7SEvalZero path += [cwd + '/apps/bletest/src'] 190*042d53a7SEvalZero 191*042d53a7SEvalZero src += Split(""" 192*042d53a7SEvalZero apps/bletest/src/bletest_hci.c 193*042d53a7SEvalZero apps/bletest/src/bletest.c 194*042d53a7SEvalZero """) 195*042d53a7SEvalZero 196*042d53a7SEvalZero# bleuart 197*042d53a7SEvalZeroif GetDepend(['PKG_NIMBLE_SAMPLE_BLEUART']): 198*042d53a7SEvalZero path += [cwd + '/apps/bleuart/src'] 199*042d53a7SEvalZero 200*042d53a7SEvalZero src += Split(""" 201*042d53a7SEvalZero apps/bleuart/src/bleuart.c 202*042d53a7SEvalZero """) 203*042d53a7SEvalZero 204*042d53a7SEvalZero# btshell 205*042d53a7SEvalZeroif GetDepend(['PKG_NIMBLE_SAMPLE_BTSHELL']): 206*042d53a7SEvalZero path += [cwd + '/apps/btshell/src'] 207*042d53a7SEvalZero 208*042d53a7SEvalZero src += Split(""" 209*042d53a7SEvalZero apps/btshell/src/btshell.c 210*042d53a7SEvalZero apps/btshell/src/cmd_gatt.c 211*042d53a7SEvalZero apps/btshell/src/cmd_l2cap.c 212*042d53a7SEvalZero apps/btshell/src/cmd.c 213*042d53a7SEvalZero apps/btshell/src/gatt_svr.c 214*042d53a7SEvalZero apps/btshell/src/misc.c 215*042d53a7SEvalZero apps/btshell/src/parse.c 216*042d53a7SEvalZero """) 217*042d53a7SEvalZero 218*042d53a7SEvalZero# ble external advertiser sample 219*042d53a7SEvalZeroif GetDepend(['PKG_NIMBLE_SAMPLE_EXT_ADVERTISER']): 220*042d53a7SEvalZero path += [cwd + '/apps/ext_advertiser/src'] 221*042d53a7SEvalZero 222*042d53a7SEvalZero src += Split(""" 223*042d53a7SEvalZero apps/ext_advertiser/src/ext_advertiser.c 224*042d53a7SEvalZero """) 225*042d53a7SEvalZero 226*042d53a7SEvalZero# beacon sample 227*042d53a7SEvalZeroif GetDepend(['PKG_NIMBLE_SAMPLE_BEACON']): 228*042d53a7SEvalZero src += Glob('apps/ibeacon/src/ibeacon.c') 229*042d53a7SEvalZero 230*042d53a7SEvalZeroLOCAL_CCFLAGS = '' 231*042d53a7SEvalZero 232*042d53a7SEvalZeroif rtconfig.CROSS_TOOL == 'keil': 233*042d53a7SEvalZero LOCAL_CCFLAGS += ' --gnu --diag_suppress=111' 234*042d53a7SEvalZero 235*042d53a7SEvalZerogroup = DefineGroup('nimble', src, depend = ['PKG_USING_NIMBLE'], CPPPATH = path, CPPDEFINES = CPPDEFINES, LOCAL_CCFLAGS = LOCAL_CCFLAGS) 236*042d53a7SEvalZero 237*042d53a7SEvalZeroReturn('group') 238