def configure(conf):
    if conf.env.MICRO_FAMILY == 'NRF52840':
        conf.env.append_unique('DEFINES', 'NRF52840_XXAA')
    if conf.is_asterix():
        conf.env.append_unique('DEFINES', 'NRF_CONFIG_NFCT_PINS_AS_GPIOS')
        conf.env.append_unique('DEFINES', 'CONFIG_GPIO_AS_PINRESET')
        conf.env.append_unique('DEFINES', 'NRFX_I2S_ENABLED=1')
        conf.env.append_unique('DEFINES', 'NRFX_I2S0_ENABLED=1')
        conf.env.append_unique('DEFINES', 'NRFX_GPIOTE_ENABLED=1')
        conf.env.append_unique('DEFINES', 'NRFX_GPIOTE_CONFIG_NUM_OF_EVT_HANDLERS=4')
        conf.env.append_unique('DEFINES', 'NRFX_PDM_ENABLED=1')
        conf.env.append_unique('DEFINES', 'NRFX_PPI_ENABLED=1')
        conf.env.append_unique('DEFINES', 'NRFX_PWM_ENABLED=1')
        conf.env.append_unique('DEFINES', 'NRFX_PWM0_ENABLED=1')
        conf.env.append_unique('DEFINES', 'NRFX_SPIM_ENABLED=1')
        conf.env.append_unique('DEFINES', 'NRFX_SPIM3_ENABLED=1')
        conf.env.append_unique('DEFINES', 'NRFX_TIMER_ENABLED=1')
        conf.env.append_unique('DEFINES', 'NRFX_TIMER1_ENABLED=1')
        conf.env.append_unique('DEFINES', 'NRFX_TIMER2_ENABLED=1')
        conf.env.append_unique('DEFINES', 'NRFX_TWIM_ENABLED=1')
        conf.env.append_unique('DEFINES', 'NRFX_TWIM0_ENABLED=1')
        conf.env.append_unique('DEFINES', 'NRFX_TWIM1_ENABLED=1')
        conf.env.append_unique('DEFINES', 'NRFX_UARTE_ENABLED=1')
        conf.env.append_unique('DEFINES', 'NRFX_UARTE0_ENABLED=1')


def build(bld):
    if bld.env.MICRO_FAMILY == 'NRF52840':
        micro_sources = bld.path.ant_glob('nrfx/**/*.c', excl = ['**/system_nrf*.c', '**/startup_nrf_common.c', '**/nrfx_twi_twim.c'])

        micro_includes = [
	    '.',
            'nrfx',
            'nrfx/hal',
            'nrfx/helpers',
            'nrfx/mdk',
            'nrfx/drivers/include',
            'nrfx/templates',
        ]

        if bld.is_asterix():
            # is there a better way to do this?
            micro_includes += ['../../src/fw/board/boards/board_asterix']
        else:
            bld.fatal("no board for nRF5 includes")

        bld.stlib(source=micro_sources,
                  target='hal_nordic',
                  use=['cmsis_core', 'pblibc'],
                  includes=micro_includes,
                  export_includes=micro_includes)
