Boot Linux faster!

Check our new training course

Boot Linux faster!

Check our new training course
and Creative Commons CC-BY-SA
lecture and lab materials

Bootlin logo

Elixir Cross Referencer

# SPDX-License-Identifier: Apache-2.0

zephyr_library()
zephyr_library_sources(
  util/mem.c
  util/memq.c
  util/mayfly.c
  util/util.c
  ticker/ticker.c
  ll_sw/ll_addr.c
  ll_sw/ll_tx_pwr.c
  hci/hci_driver.c
  hci/hci.c
  )

zephyr_library_sources_ifdef(
  CONFIG_BT_CTLR_CRYPTO
  crypto/crypto.c
  )

if(CONFIG_BT_LL_SW_LEGACY)
  zephyr_library_sources(
    ll_sw/ctrl.c
    ll_sw/ll.c
    )
  zephyr_library_sources_ifdef(
    CONFIG_BT_BROADCASTER
    ll_sw/ll_adv.c
    )
  zephyr_library_sources_ifdef(
    CONFIG_BT_OBSERVER
    ll_sw/ll_scan.c
    )
  zephyr_library_sources_ifdef(
    CONFIG_BT_CTLR_FILTER
    ll_sw/ll_filter.c
    )
  zephyr_library_sources_ifdef(
    CONFIG_BT_CENTRAL
    ll_sw/ll_master.c
    )
  zephyr_library_sources_ifdef(
    CONFIG_BT_CTLR_ADV_EXT
    ll_sw/ll_adv_aux.c
    )
  zephyr_library_sources_ifdef(
    CONFIG_BT_HCI_MESH_EXT
    ll_sw/ll_mesh.c
    )
  zephyr_library_sources_ifdef(
    CONFIG_BT_CTLR_DTM
    ll_sw/ll_test.c
    )
endif()

if(CONFIG_BT_LL_SW_SPLIT)
  zephyr_library_sources(
    ll_sw/ull.c
    ll_sw/lll_chan.c
    )
  zephyr_library_sources_ifdef(
    CONFIG_BT_LLL_VENDOR_NORDIC
    ll_sw/nordic/lll/lll.c
    )
  if(CONFIG_BT_BROADCASTER)
    zephyr_library_sources(
      ll_sw/ull_adv.c
      )
    zephyr_library_sources_ifdef(
      CONFIG_BT_CTLR_ADV_EXT
      ll_sw/ull_adv_aux.c
      )
    zephyr_library_sources_ifdef(
      CONFIG_BT_LLL_VENDOR_NORDIC
      ll_sw/nordic/lll/lll_adv.c
      )
  endif()
  if(CONFIG_BT_OBSERVER)
    zephyr_library_sources(
      ll_sw/ull_scan.c
      )
    zephyr_library_sources_ifdef(
      CONFIG_BT_LLL_VENDOR_NORDIC
      ll_sw/nordic/lll/lll_scan.c
      )
  endif()
  if(CONFIG_BT_CONN)
    zephyr_library_sources(
      ll_sw/ull_conn.c
    )
    zephyr_library_sources_ifdef(
      CONFIG_BT_LLL_VENDOR_NORDIC
      ll_sw/nordic/lll/lll_clock.c
      ll_sw/nordic/lll/lll_conn.c
      )
    if(CONFIG_BT_PERIPHERAL)
      zephyr_library_sources(
        ll_sw/ull_slave.c
      )
      zephyr_library_sources_ifdef(
        CONFIG_BT_LLL_VENDOR_NORDIC
        ll_sw/nordic/lll/lll_slave.c
        )
    endif()
    if(CONFIG_BT_CENTRAL)
      zephyr_library_sources(
        ll_sw/ull_master.c
      )
      zephyr_library_sources_ifdef(
        CONFIG_BT_LLL_VENDOR_NORDIC
        ll_sw/nordic/lll/lll_master.c
        )
    endif()
    if(CONFIG_BT_CTLR_SCHED_ADVANCED)
      zephyr_library_sources(
        ll_sw/ull_sched.c
      )
    endif()
  endif()
  zephyr_library_sources_ifdef(
    CONFIG_BT_CTLR_FILTER
    ll_sw/ull_filter.c
    )
  zephyr_library_sources_ifdef(
    CONFIG_BT_HCI_MESH_EXT
    ll_sw/ll_mesh.c
    )
  if(CONFIG_BT_LLL_VENDOR_NORDIC)
    zephyr_library_include_directories(
      ll_sw/nordic/lll
      )
    zephyr_library_sources_ifdef(
      CONFIG_BT_CTLR_DTM
      ll_sw/nordic/lll/lll_test.c
      )
    zephyr_library_sources_ifdef(
      CONFIG_BT_CTLR_PROFILE_ISR
      ll_sw/nordic/lll/lll_prof.c
      )
  endif()
endif()

zephyr_library_sources_ifdef(
  CONFIG_BT_CTLR_SETTINGS
  ll_sw/ll_settings.c
)

zephyr_library_sources_ifdef(
  CONFIG_SOC_COMPATIBLE_NRF
  ll_sw/nordic/hal/nrf5/cntr.c
  ll_sw/nordic/hal/nrf5/ecb.c
  ll_sw/nordic/hal/nrf5/radio/radio.c
  ll_sw/nordic/hal/nrf5/mayfly.c
  ll_sw/nordic/hal/nrf5/ticker.c
  )

zephyr_library_include_directories(
  .
  include
  ll_sw
  )

if(CONFIG_SOC_COMPATIBLE_NRF)
  zephyr_library_include_directories(
    ll_sw/nordic
    hci/nordic
    )
endif()

zephyr_library_compile_options_ifdef(
  CONFIG_BT_CTLR_FAST_ENC
  ${OPTIMIZE_FOR_SPEED_FLAG}
  )

zephyr_library_link_libraries(subsys__bluetooth)