package third_party.bsp.stmf4cube

@BuildArtifactPath(cppflags="-DUSE_HAL_DRIVER -DSTM32F4_CUBE")
@BuildArtifactPath(cppflags="-DSTM32F4_CUBE_1_27_1")
@BuildArtifactPath(cppflags="$(addprefix -I$(EXTERNAL_BUILD_DIR)/third_party/bsp/stmf4cube/cube/STM32CubeF4-1.27.1/,Drivers/STM32F4xx_HAL_Driver/Inc Drivers/CMSIS/Device/ST/STM32F4xx/Include Drivers/CMSIS/Include)")
module cube_cppflags {

}

@Build(stage=1,script="$(EXTERNAL_MAKE) download extract patch")
@BuildDepends(cube_cppflags)
@BuildDepends(third_party.bsp.stmf4cube.stm32f4_conf)
static module cube {
	option number eth_rx_packet_count = 4
	option number eth_tx_packet_count = 2

	@IncludeExport(path="bsp")
	source "stm32cube_hal.h"

	@Cflags("-Wno-unused")
	@Cflags("-Wno-undef")
	@AddPrefix("^BUILD/extbld/^MOD_PATH/STM32CubeF4-1.27.1/Drivers/STM32F4xx_HAL_Driver/Src")
	source
		"stm32f4xx_hal.c",
		"stm32f4xx_hal_adc.c",
		"stm32f4xx_hal_adc_ex.c",
		"stm32f4xx_hal_can.c",
		"stm32f4xx_hal_cec.c",
		"stm32f4xx_hal_cortex.c",
		"stm32f4xx_hal_crc.c",
		"stm32f4xx_hal_cryp.c",
		"stm32f4xx_hal_cryp_ex.c",
		"stm32f4xx_hal_dac.c",
		"stm32f4xx_hal_dac_ex.c",
		"stm32f4xx_hal_dcmi.c",
		"stm32f4xx_hal_dcmi_ex.c",
		"stm32f4xx_hal_dma.c",
		"stm32f4xx_hal_dma2d.c",
		"stm32f4xx_hal_dma_ex.c",
		"stm32f4xx_hal_dsi.c",
		/* "stm32f4xx_hal_eth.c",*/
		"Legacy/stm32f4xx_hal_eth.c",
		"stm32f4xx_hal_flash.c",
		"stm32f4xx_hal_flash_ex.c",
		"stm32f4xx_hal_gpio.c",
		"stm32f4xx_hal_hash.c",
		"stm32f4xx_hal_hash_ex.c",
		"stm32f4xx_hal_hcd.c",
		"stm32f4xx_hal_i2c.c",
		"stm32f4xx_hal_i2c_ex.c",
		"stm32f4xx_hal_i2s.c",
		"stm32f4xx_hal_i2s_ex.c",
		"stm32f4xx_hal_irda.c",
		"stm32f4xx_hal_iwdg.c",
		"stm32f4xx_hal_lptim.c",
		"stm32f4xx_hal_ltdc.c",
		"stm32f4xx_hal_msp_template.c",
		"stm32f4xx_hal_nand.c",
		"stm32f4xx_hal_nor.c",
		"stm32f4xx_hal_pccard.c",
		"stm32f4xx_hal_pcd.c",
		"stm32f4xx_hal_pcd_ex.c",
		"stm32f4xx_hal_pwr.c",
		"stm32f4xx_hal_pwr_ex.c",
		"stm32f4xx_hal_qspi.c",
		"stm32f4xx_hal_rcc.c",
		"stm32f4xx_hal_rcc_ex.c",
		"stm32f4xx_hal_rng.c",
		"stm32f4xx_hal_rtc.c",
		"stm32f4xx_hal_rtc_ex.c",
		"stm32f4xx_hal_sai.c",
		"stm32f4xx_hal_sai_ex.c",
		"stm32f4xx_hal_sd.c",
		"stm32f4xx_hal_sdram.c",
		"stm32f4xx_hal_smartcard.c",
		"stm32f4xx_hal_spdifrx.c",
		"stm32f4xx_hal_spi.c",
		"stm32f4xx_hal_sram.c",
		"stm32f4xx_hal_tim.c",
		"stm32f4xx_hal_tim_ex.c",
		"stm32f4xx_hal_uart.c",
		"stm32f4xx_hal_usart.c",
		"stm32f4xx_hal_wwdg.c",
		"stm32f4xx_ll_fmc.c",
		"stm32f4xx_ll_sdmmc.c",
		"stm32f4xx_ll_usb.c"

	@NoRuntime depends third_party.bsp.stmf4cube.stm32f4_conf
	@NoRuntime depends cube_cppflags
}
