See (https://mynewt.apache.org/network/ble/ble_intro/).
NimBLE is usually built as a part of Apache Mynewt OS, but ports for other RTOS-es are also available.
(tbd)
You will need to download nRF5 SDK from Nordic Semiconductor website: (https://www.nordicsemi.com/eng/Products/Bluetooth-low-energy/nRF5-SDK).
Sample application expects nRF5 SDK to be available at location specified by NRF5_SDK_ROOT
variable. By default it points to ./nrf5_sdk
directory (i.e. subdirectory of porting/freertos_nrf5_sdk
directory) so the easiest way is to either copy nRF5 SDK to that location or make a symbolic link:
$ ln -s <x>/nRF5_SDK_12.3.0_d7731ad porting/freertos_nrf5_sdk/nrf5_sdk
Alternatively, you may want to overwrite default value of NRF5_SDK_ROOT
to point to proper location:
$ export NRF5_SDK_ROOT=<x>/nRF5_SDK_12.3.0_d7731ad
Provided Makefile is compatible with nRF5 SDK build system so sample application is built and flashed as other examples in nRF5 SDK:
$ make -C porting/freertos_nrf5_sdk $ make -C porting/freertos_nrf5_sdk flash