RESULT ?= iap_demo

DEFINES = \
	-DSTM32H563xx \
	-DUSE_HAL_DRIVER \
	-DFLASH_DB_MODE \
	-DUSE_STM32H5XX_NUCLEO \
	-D__USE_C99_MATH \
	-D_WINSOCK_H \
	-D__error_t_defined

INCLUDES = \
	-I../src \
	-I../../../../../../third_party/cmsis/include \
	-I../../../../../../third_party/st/devices/stm32h5xx \
	-I../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc \
	-I../../../../../../third_party/st/boards/stm32h5xx_nucleo \
	-I../../../../../../third_party/freertos/include \
	-I../../../../../../third_party/freertos/portable/gcc/arm_cm33_ntz/non_secure \
	-I../../../../../../src/common \
	-I../../../../../../src/cyclone_tcp \
	-I../../../../../../src/cyclone_ssh \
	-I../../../../../../src/cyclone_crypto \
	-I../../../../../../src/cyclone_boot \
	-I../../../../../../src/cyclone_boot/modules

ASM_SOURCES = \
	./startup_stm32h563xx.S

C_SOURCES = \
	../src/system_stm32h5xx.c \
	../src/stm32h5xx_it.c \
	../src/stm32h5xx_hal_timebase_tim.c \
	../src/fs_port_custom.c \
	./syscalls.c \
	../src/main.c \
	../src/debug.c \
	../src/res.c \
	../../../../../../src/common/cpu_endian.c \
	../../../../../../src/common/os_port_freertos.c \
	../../../../../../src/common/date_time.c \
	../../../../../../src/common/str.c \
	../../../../../../src/common/path.c \
	../../../../../../src/common/resource_manager.c \
	../../../../../../src/cyclone_boot/core/crc32.c \
	../../../../../../src/cyclone_boot/drivers/mcu_core/stm32h5xx_mcu_driver.c \
	../../../../../../src/cyclone_boot/drivers/flash/internal/stm32h5xx_flash_driver.c \
	../../../../../../src/cyclone_boot/modules/image/image.c \
	../../../../../../src/cyclone_boot/modules/image/image_process.c \
	../../../../../../src/cyclone_boot/modules/image/image_utils.c \
	../../../../../../src/cyclone_boot/modules/memory/memory.c \
	../../../../../../src/cyclone_boot/modules/memory/memory_ex.c \
	../../../../../../src/cyclone_boot/core/verify.c \
	../../../../../../src/cyclone_boot/modules/security/verify_auth.c \
	../../../../../../src/cyclone_boot/modules/security/verify_sign.c \
	../../../../../../src/cyclone_boot/modules/security/cipher.c \
	../../../../../../src/cyclone_boot/update/update.c \
	../../../../../../src/cyclone_boot/update/update_misc.c \
	../../../../../../src/cyclone_boot/update/update_fallback.c \
	../../../../../../src/cyclone_tcp/core/net.c \
	../../../../../../src/cyclone_tcp/core/net_mem.c \
	../../../../../../src/cyclone_tcp/core/net_misc.c \
	../../../../../../src/cyclone_tcp/drivers/mac/stm32h5xx_eth_driver.c \
	../../../../../../src/cyclone_tcp/drivers/phy/lan8742_driver.c \
	../../../../../../src/cyclone_tcp/core/nic.c \
	../../../../../../src/cyclone_tcp/core/ethernet.c \
	../../../../../../src/cyclone_tcp/core/ethernet_misc.c \
	../../../../../../src/cyclone_tcp/ipv4/arp.c \
	../../../../../../src/cyclone_tcp/ipv4/arp_cache.c \
	../../../../../../src/cyclone_tcp/ipv4/ipv4.c \
	../../../../../../src/cyclone_tcp/ipv4/ipv4_frag.c \
	../../../../../../src/cyclone_tcp/ipv4/ipv4_misc.c \
	../../../../../../src/cyclone_tcp/ipv4/ipv4_multicast.c \
	../../../../../../src/cyclone_tcp/ipv4/icmp.c \
	../../../../../../src/cyclone_tcp/igmp/igmp_host.c \
	../../../../../../src/cyclone_tcp/igmp/igmp_host_misc.c \
	../../../../../../src/cyclone_tcp/igmp/igmp_common.c \
	../../../../../../src/cyclone_tcp/ipv6/ipv6.c \
	../../../../../../src/cyclone_tcp/ipv6/ipv6_frag.c \
	../../../../../../src/cyclone_tcp/ipv6/ipv6_misc.c \
	../../../../../../src/cyclone_tcp/ipv6/ipv6_pmtu.c \
	../../../../../../src/cyclone_tcp/ipv6/icmpv6.c \
	../../../../../../src/cyclone_tcp/ipv6/ipv6_multicast.c \
	../../../../../../src/cyclone_tcp/mld/mld_node.c \
	../../../../../../src/cyclone_tcp/mld/mld_node_misc.c \
	../../../../../../src/cyclone_tcp/mld/mld_common.c \
	../../../../../../src/cyclone_tcp/mld/mld_debug.c \
	../../../../../../src/cyclone_tcp/ipv6/ndp.c \
	../../../../../../src/cyclone_tcp/ipv6/ndp_cache.c \
	../../../../../../src/cyclone_tcp/ipv6/ndp_misc.c \
	../../../../../../src/cyclone_tcp/ipv6/slaac.c \
	../../../../../../src/cyclone_tcp/ipv6/slaac_misc.c \
	../../../../../../src/cyclone_tcp/core/ip.c \
	../../../../../../src/cyclone_tcp/core/tcp.c \
	../../../../../../src/cyclone_tcp/core/tcp_fsm.c \
	../../../../../../src/cyclone_tcp/core/tcp_misc.c \
	../../../../../../src/cyclone_tcp/core/tcp_timer.c \
	../../../../../../src/cyclone_tcp/core/udp.c \
	../../../../../../src/cyclone_tcp/core/socket.c \
	../../../../../../src/cyclone_tcp/core/socket_misc.c \
	../../../../../../src/cyclone_tcp/core/bsd_socket.c \
	../../../../../../src/cyclone_tcp/core/bsd_socket_options.c \
	../../../../../../src/cyclone_tcp/core/bsd_socket_misc.c \
	../../../../../../src/cyclone_tcp/core/raw_socket.c \
	../../../../../../src/cyclone_tcp/dns/dns_cache.c \
	../../../../../../src/cyclone_tcp/dns/dns_client.c \
	../../../../../../src/cyclone_tcp/dns/dns_common.c \
	../../../../../../src/cyclone_tcp/dns/dns_debug.c \
	../../../../../../src/cyclone_tcp/mdns/mdns_client.c \
	../../../../../../src/cyclone_tcp/mdns/mdns_responder.c \
	../../../../../../src/cyclone_tcp/mdns/mdns_responder_misc.c \
	../../../../../../src/cyclone_tcp/mdns/mdns_common.c \
	../../../../../../src/cyclone_tcp/netbios/nbns_client.c \
	../../../../../../src/cyclone_tcp/netbios/nbns_responder.c \
	../../../../../../src/cyclone_tcp/netbios/nbns_common.c \
	../../../../../../src/cyclone_tcp/llmnr/llmnr_client.c \
	../../../../../../src/cyclone_tcp/llmnr/llmnr_responder.c \
	../../../../../../src/cyclone_tcp/llmnr/llmnr_common.c \
	../../../../../../src/cyclone_tcp/dhcp/dhcp_client.c \
	../../../../../../src/cyclone_tcp/dhcp/dhcp_client_fsm.c \
	../../../../../../src/cyclone_tcp/dhcp/dhcp_client_misc.c \
	../../../../../../src/cyclone_tcp/dhcp/dhcp_common.c \
	../../../../../../src/cyclone_tcp/dhcp/dhcp_debug.c \
	../../../../../../src/cyclone_ssh/ssh/ssh.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_server.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_server_misc.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_algorithms.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_extensions.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_transport.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_kex.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_kex_rsa.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_kex_dh.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_kex_dh_gex.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_kex_ecdh.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_kex_hybrid.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_auth.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_auth_password.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_auth_public_key.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_connection.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_request.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_channel.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_packet.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_key_material.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_exchange_hash.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_modp_groups.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_key_import.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_key_export.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_key_parse.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_key_format.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_key_decrypt.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_key_verify.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_cert_import.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_cert_export.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_cert_parse.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_cert_verify.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_sign_generate.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_sign_verify.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_sign_misc.c \
	../../../../../../src/cyclone_ssh/ssh/ssh_misc.c \
	../../../../../../src/cyclone_ssh/sftp/sftp_server.c \
	../../../../../../src/cyclone_ssh/sftp/sftp_server_file.c \
	../../../../../../src/cyclone_ssh/sftp/sftp_server_directory.c \
	../../../../../../src/cyclone_ssh/sftp/sftp_server_packet.c \
	../../../../../../src/cyclone_ssh/sftp/sftp_server_misc.c \
	../../../../../../src/cyclone_ssh/sftp/sftp_common.c \
	../../../../../../src/cyclone_crypto/hardware/stm32h5xx/stm32h5xx_crypto.c \
	../../../../../../src/cyclone_crypto/hardware/stm32h5xx/stm32h5xx_crypto_trng.c \
	../../../../../../src/cyclone_crypto/hardware/stm32h5xx/stm32h5xx_crypto_hash.c \
	../../../../../../src/cyclone_crypto/hardware/stm32h5xx/stm32h5xx_crypto_cipher.c \
	../../../../../../src/cyclone_crypto/hardware/stm32h5xx/stm32h5xx_crypto_pkc.c \
	../../../../../../src/cyclone_crypto/hash/md5.c \
	../../../../../../src/cyclone_crypto/hash/ripemd160.c \
	../../../../../../src/cyclone_crypto/hash/sha1.c \
	../../../../../../src/cyclone_crypto/hash/sha256.c \
	../../../../../../src/cyclone_crypto/hash/sha384.c \
	../../../../../../src/cyclone_crypto/hash/sha512.c \
	../../../../../../src/cyclone_crypto/hash/sha3_256.c \
	../../../../../../src/cyclone_crypto/hash/sha3_512.c \
	../../../../../../src/cyclone_crypto/mac/hmac.c \
	../../../../../../src/cyclone_crypto/cipher/rc4.c \
	../../../../../../src/cyclone_crypto/cipher/cast128.c \
	../../../../../../src/cyclone_crypto/cipher/idea.c \
	../../../../../../src/cyclone_crypto/cipher/des.c \
	../../../../../../src/cyclone_crypto/cipher/des3.c \
	../../../../../../src/cyclone_crypto/cipher/aes.c \
	../../../../../../src/cyclone_crypto/cipher/blowfish.c \
	../../../../../../src/cyclone_crypto/cipher/twofish.c \
	../../../../../../src/cyclone_crypto/cipher/serpent.c \
	../../../../../../src/cyclone_crypto/cipher/camellia.c \
	../../../../../../src/cyclone_crypto/cipher/seed.c \
	../../../../../../src/cyclone_crypto/cipher_modes/cbc.c \
	../../../../../../src/cyclone_crypto/cipher_modes/ctr.c \
	../../../../../../src/cyclone_crypto/aead/gcm.c \
	../../../../../../src/cyclone_crypto/cipher/chacha.c \
	../../../../../../src/cyclone_crypto/mac/poly1305.c \
	../../../../../../src/cyclone_crypto/pkc/dh.c \
	../../../../../../src/cyclone_crypto/pkc/rsa.c \
	../../../../../../src/cyclone_crypto/pkc/dsa.c \
	../../../../../../src/cyclone_crypto/ecc/ec.c \
	../../../../../../src/cyclone_crypto/ecc/ec_curves.c \
	../../../../../../src/cyclone_crypto/ecc/ecdh.c \
	../../../../../../src/cyclone_crypto/ecc/ecdsa.c \
	../../../../../../src/cyclone_crypto/ecc/eddsa.c \
	../../../../../../src/cyclone_crypto/ecc/curve25519.c \
	../../../../../../src/cyclone_crypto/ecc/curve448.c \
	../../../../../../src/cyclone_crypto/ecc/x25519.c \
	../../../../../../src/cyclone_crypto/ecc/x448.c \
	../../../../../../src/cyclone_crypto/ecc/ed25519.c \
	../../../../../../src/cyclone_crypto/ecc/ed448.c \
	../../../../../../src/cyclone_crypto/pqc/kem.c \
	../../../../../../src/cyclone_crypto/pqc/mlkem768.c \
	../../../../../../src/cyclone_crypto/pqc/mlkem1024.c \
	../../../../../../src/cyclone_crypto/pqc/sntrup761.c \
	../../../../../../src/cyclone_crypto/mpi/mpi.c \
	../../../../../../src/cyclone_crypto/mpi/mpi_misc.c \
	../../../../../../src/cyclone_crypto/encoding/base64.c \
	../../../../../../src/cyclone_crypto/encoding/asn1.c \
	../../../../../../src/cyclone_crypto/encoding/oid.c \
	../../../../../../src/cyclone_crypto/pkix/pem_import.c \
	../../../../../../src/cyclone_crypto/pkix/pem_key_import.c \
	../../../../../../src/cyclone_crypto/pkix/pem_decrypt.c \
	../../../../../../src/cyclone_crypto/pkix/pem_common.c \
	../../../../../../src/cyclone_crypto/pkix/pkcs5_decrypt.c \
	../../../../../../src/cyclone_crypto/pkix/pkcs5_common.c \
	../../../../../../src/cyclone_crypto/pkix/pkcs8_key_parse.c \
	../../../../../../src/cyclone_crypto/pkix/x509_key_parse.c \
	../../../../../../src/cyclone_crypto/pkix/x509_common.c \
	../../../../../../src/cyclone_crypto/kdf/pbkdf.c \
	../../../../../../src/cyclone_crypto/xof/keccak.c \
	../../../../../../src/cyclone_crypto/xof/shake.c \
	../../../../../../src/cyclone_crypto/rng/yarrow.c \
	../../../../../../src/cyclone_crypto/ecc/ec_misc.c \
	../../../../../../src/cyclone_crypto/pkc/rsa_misc.c \
	../../../../../../third_party/freertos/portable/gcc/arm_cm33_ntz/non_secure/port.c \
	../../../../../../third_party/freertos/portable/gcc/arm_cm33_ntz/non_secure/portasm.c \
	../../../../../../third_party/freertos/croutine.c \
	../../../../../../third_party/freertos/list.c \
	../../../../../../third_party/freertos/queue.c \
	../../../../../../third_party/freertos/tasks.c \
	../../../../../../third_party/freertos/timers.c \
	../../../../../../third_party/freertos/portable/memmang/heap_3.c \
	../../../../../../third_party/st/boards/stm32h5xx_nucleo/stm32h5xx_nucleo.c \
	../../../../../../third_party/st/boards/stm32h5xx_nucleo/stm32h5xx_nucleo_usbpd_pwr.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_adc.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_adc_ex.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_cec.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_comp.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_cordic.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_cortex.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_crc.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_crc_ex.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_cryp.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_cryp_ex.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_dac.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_dac_ex.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_dcache.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_dcmi.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_dma.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_dma_ex.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_dts.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_eth.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_eth_ex.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_exti.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_fdcan.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_flash.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_flash_ex.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_fmac.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_gpio.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_gtzc.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_hash.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_hcd.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_i2c.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_i2c_ex.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_i2s.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_i2s_ex.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_i3c.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_icache.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_irda.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_iwdg.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_lptim.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_mmc.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_mmc_ex.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_nand.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_nor.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_opamp.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_opamp_ex.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_otfdec.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_pcd.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_pcd_ex.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_pka.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_pssi.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_pwr.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_pwr_ex.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_ramcfg.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_rcc.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_rcc_ex.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_rng.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_rng_ex.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_rtc.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_rtc_ex.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_sai.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_sai_ex.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_sd.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_sdram.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_sd_ex.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_smartcard.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_smartcard_ex.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_smbus.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_smbus_ex.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_spi.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_spi_ex.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_sram.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_tim.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_tim_ex.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_uart.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_uart_ex.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_usart.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_usart_ex.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_wwdg.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_hal_xspi.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_ll_adc.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_ll_comp.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_ll_cordic.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_ll_crc.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_ll_crs.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_ll_dac.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_ll_dlyb.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_ll_dma.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_ll_exti.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_ll_fmac.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_ll_fmc.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_ll_gpio.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_ll_i2c.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_ll_i3c.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_ll_icache.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_ll_lptim.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_ll_lpuart.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_ll_opamp.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_ll_pka.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_ll_pwr.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_ll_rcc.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_ll_rng.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_ll_rtc.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_ll_sdmmc.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_ll_spi.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_ll_tim.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_ll_ucpd.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_ll_usart.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_ll_usb.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_ll_utils.c \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/src/stm32h5xx_util_i3c.c

HEADERS = \
	../src/os_port_config.h \
	../src/fs_port_config.h \
	../src/FreeRTOSConfig.h \
	../src/stm32h5xx_hal_conf.h \
	../src/stm32h5xx_nucleo_conf.h \
	../src/fs_port_custom.h \
	../src/stm32h5xx_it.h \
	../src/net_config.h \
	../src/ssh_config.h \
	../src/crypto_config.h \
	../src/boot_config.h \
	../src/version.h \
	../../../../../../src/common/cpu_endian.h \
	../../../../../../src/common/os_port.h \
	../../../../../../src/common/os_port_freertos.h \
	../../../../../../src/common/fs_port.h \
	../../../../../../src/common/date_time.h \
	../../../../../../src/common/str.h \
	../../../../../../src/common/path.h \
	../../../../../../src/common/resource_manager.h \
	../../../../../../src/common/error.h \
	../../../../../../src/common/debug.h \
	../../../../../../src/cyclone_boot/core/cboot_error.h \
	../../../../../../src/cyclone_boot/core/crc32.h \
	../../../../../../src/cyclone_boot/core/flash.h \
	../../../../../../src/cyclone_boot/core/mcu.h \
	../../../../../../src/cyclone_boot/drivers/mcu_core/stm32h5xx_mcu_driver.h \
	../../../../../../src/cyclone_boot/drivers/flash/internal/stm32h5xx_flash_driver.h \
	../../../../../../src/cyclone_boot/modules/image/image.h \
	../../../../../../src/cyclone_boot/modules/image/image_process.h \
	../../../../../../src/cyclone_boot/modules/image/image_utils.h \
	../../../../../../src/cyclone_boot/modules/memory/memory.h \
	../../../../../../src/cyclone_boot/modules/memory/memory_ex.h \
	../../../../../../src/cyclone_boot/core/verify.h \
	../../../../../../src/cyclone_boot/modules/security/verify_auth.h \
	../../../../../../src/cyclone_boot/modules/security/verify_sign.h \
	../../../../../../src/cyclone_boot/modules/security/cipher.h \
	../../../../../../src/cyclone_boot/update/update.h \
	../../../../../../src/cyclone_boot/update/update_misc.h \
	../../../../../../src/cyclone_boot/update/update_fallback.h \
	../../../../../../src/cyclone_tcp/core/net.h \
	../../../../../../src/cyclone_tcp/core/net_mem.h \
	../../../../../../src/cyclone_tcp/core/net_misc.h \
	../../../../../../src/cyclone_tcp/drivers/mac/stm32h5xx_eth_driver.h \
	../../../../../../src/cyclone_tcp/drivers/phy/lan8742_driver.h \
	../../../../../../src/cyclone_tcp/core/nic.h \
	../../../../../../src/cyclone_tcp/core/ethernet.h \
	../../../../../../src/cyclone_tcp/core/ethernet_misc.h \
	../../../../../../src/cyclone_tcp/ipv4/arp.h \
	../../../../../../src/cyclone_tcp/ipv4/arp_cache.h \
	../../../../../../src/cyclone_tcp/ipv4/ipv4.h \
	../../../../../../src/cyclone_tcp/ipv4/ipv4_frag.h \
	../../../../../../src/cyclone_tcp/ipv4/ipv4_misc.h \
	../../../../../../src/cyclone_tcp/ipv4/icmp.h \
	../../../../../../src/cyclone_tcp/igmp/igmp_host.h \
	../../../../../../src/cyclone_tcp/igmp/igmp_host_misc.h \
	../../../../../../src/cyclone_tcp/igmp/igmp_common.h \
	../../../../../../src/cyclone_tcp/igmp/igmp_debug.h \
	../../../../../../src/cyclone_tcp/ipv6/ipv6.h \
	../../../../../../src/cyclone_tcp/ipv6/ipv6_frag.h \
	../../../../../../src/cyclone_tcp/ipv6/ipv6_misc.h \
	../../../../../../src/cyclone_tcp/ipv6/ipv6_pmtu.h \
	../../../../../../src/cyclone_tcp/ipv6/ipv6_multicast.h \
	../../../../../../src/cyclone_tcp/mld/mld_node.h \
	../../../../../../src/cyclone_tcp/mld/mld_node_misc.h \
	../../../../../../src/cyclone_tcp/mld/mld_common.h \
	../../../../../../src/cyclone_tcp/mld/mld_debug.h \
	../../../../../../src/cyclone_tcp/ipv6/icmpv6.h \
	../../../../../../src/cyclone_tcp/ipv6/ndp.h \
	../../../../../../src/cyclone_tcp/ipv6/ndp_cache.h \
	../../../../../../src/cyclone_tcp/ipv6/ndp_misc.h \
	../../../../../../src/cyclone_tcp/ipv6/slaac.h \
	../../../../../../src/cyclone_tcp/ipv6/slaac_misc.h \
	../../../../../../src/cyclone_tcp/core/ip.h \
	../../../../../../src/cyclone_tcp/core/tcp.h \
	../../../../../../src/cyclone_tcp/core/tcp_fsm.h \
	../../../../../../src/cyclone_tcp/core/tcp_misc.h \
	../../../../../../src/cyclone_tcp/core/tcp_timer.h \
	../../../../../../src/cyclone_tcp/core/udp.h \
	../../../../../../src/cyclone_tcp/core/socket.h \
	../../../../../../src/cyclone_tcp/core/socket_misc.h \
	../../../../../../src/cyclone_tcp/core/bsd_socket.h \
	../../../../../../src/cyclone_tcp/core/bsd_socket_options.h \
	../../../../../../src/cyclone_tcp/core/bsd_socket_misc.h \
	../../../../../../src/cyclone_tcp/core/raw_socket.h \
	../../../../../../src/cyclone_tcp/dns/dns_cache.h \
	../../../../../../src/cyclone_tcp/dns/dns_client.h \
	../../../../../../src/cyclone_tcp/dns/dns_common.h \
	../../../../../../src/cyclone_tcp/dns/dns_debug.h \
	../../../../../../src/cyclone_tcp/mdns/mdns_client.h \
	../../../../../../src/cyclone_tcp/mdns/mdns_responder.h \
	../../../../../../src/cyclone_tcp/mdns/mdns_responder_misc.h \
	../../../../../../src/cyclone_tcp/mdns/mdns_common.h \
	../../../../../../src/cyclone_tcp/netbios/nbns_client.h \
	../../../../../../src/cyclone_tcp/netbios/nbns_responder.h \
	../../../../../../src/cyclone_tcp/netbios/nbns_common.h \
	../../../../../../src/cyclone_tcp/llmnr/llmnr_client.h \
	../../../../../../src/cyclone_tcp/llmnr/llmnr_responder.h \
	../../../../../../src/cyclone_tcp/llmnr/llmnr_common.h \
	../../../../../../src/cyclone_tcp/dhcp/dhcp_client.h \
	../../../../../../src/cyclone_tcp/dhcp/dhcp_client_fsm.h \
	../../../../../../src/cyclone_tcp/dhcp/dhcp_client_misc.h \
	../../../../../../src/cyclone_tcp/dhcp/dhcp_common.h \
	../../../../../../src/cyclone_tcp/dhcp/dhcp_debug.h \
	../../../../../../src/cyclone_ssh/ssh/ssh.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_server.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_server_misc.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_algorithms.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_extensions.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_transport.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_kex.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_kex_rsa.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_kex_dh.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_kex_dh_gex.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_kex_ecdh.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_kex_hybrid.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_auth.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_auth_password.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_auth_public_key.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_connection.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_request.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_channel.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_packet.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_key_material.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_exchange_hash.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_modp_groups.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_key_import.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_key_export.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_key_parse.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_key_format.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_key_decrypt.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_key_verify.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_cert_import.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_cert_export.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_cert_parse.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_cert_verify.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_sign_generate.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_sign_verify.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_sign_misc.h \
	../../../../../../src/cyclone_ssh/ssh/ssh_misc.h \
	../../../../../../src/cyclone_ssh/sftp/sftp_server.h \
	../../../../../../src/cyclone_ssh/sftp/sftp_server_file.h \
	../../../../../../src/cyclone_ssh/sftp/sftp_server_directory.h \
	../../../../../../src/cyclone_ssh/sftp/sftp_server_packet.h \
	../../../../../../src/cyclone_ssh/sftp/sftp_server_misc.h \
	../../../../../../src/cyclone_ssh/sftp/sftp_common.h \
	../../../../../../src/cyclone_crypto/core/crypto.h \
	../../../../../../src/cyclone_crypto/hardware/stm32h5xx/stm32h5xx_crypto.h \
	../../../../../../src/cyclone_crypto/hardware/stm32h5xx/stm32h5xx_crypto_trng.h \
	../../../../../../src/cyclone_crypto/hardware/stm32h5xx/stm32h5xx_crypto_hash.h \
	../../../../../../src/cyclone_crypto/hardware/stm32h5xx/stm32h5xx_crypto_cipher.h \
	../../../../../../src/cyclone_crypto/hardware/stm32h5xx/stm32h5xx_crypto_pkc.h \
	../../../../../../src/cyclone_crypto/hash/md5.h \
	../../../../../../src/cyclone_crypto/hash/ripemd160.h \
	../../../../../../src/cyclone_crypto/hash/sha1.h \
	../../../../../../src/cyclone_crypto/hash/sha256.h \
	../../../../../../src/cyclone_crypto/hash/sha384.h \
	../../../../../../src/cyclone_crypto/hash/sha512.h \
	../../../../../../src/cyclone_crypto/hash/sha3_256.h \
	../../../../../../src/cyclone_crypto/hash/sha3_512.h \
	../../../../../../src/cyclone_crypto/mac/hmac.h \
	../../../../../../src/cyclone_crypto/cipher/rc4.h \
	../../../../../../src/cyclone_crypto/cipher/cast128.h \
	../../../../../../src/cyclone_crypto/cipher/idea.h \
	../../../../../../src/cyclone_crypto/cipher/des.h \
	../../../../../../src/cyclone_crypto/cipher/des3.h \
	../../../../../../src/cyclone_crypto/cipher/aes.h \
	../../../../../../src/cyclone_crypto/cipher/blowfish.h \
	../../../../../../src/cyclone_crypto/cipher/twofish.h \
	../../../../../../src/cyclone_crypto/cipher/serpent.h \
	../../../../../../src/cyclone_crypto/cipher/camellia.h \
	../../../../../../src/cyclone_crypto/cipher/seed.h \
	../../../../../../src/cyclone_crypto/cipher_modes/cbc.h \
	../../../../../../src/cyclone_crypto/cipher_modes/ctr.h \
	../../../../../../src/cyclone_crypto/aead/gcm.h \
	../../../../../../src/cyclone_crypto/cipher/chacha.h \
	../../../../../../src/cyclone_crypto/mac/poly1305.h \
	../../../../../../src/cyclone_crypto/pkc/dh.h \
	../../../../../../src/cyclone_crypto/pkc/rsa.h \
	../../../../../../src/cyclone_crypto/pkc/dsa.h \
	../../../../../../src/cyclone_crypto/ecc/ec.h \
	../../../../../../src/cyclone_crypto/ecc/ec_curves.h \
	../../../../../../src/cyclone_crypto/ecc/ecdh.h \
	../../../../../../src/cyclone_crypto/ecc/ecdsa.h \
	../../../../../../src/cyclone_crypto/ecc/eddsa.h \
	../../../../../../src/cyclone_crypto/ecc/curve25519.h \
	../../../../../../src/cyclone_crypto/ecc/curve448.h \
	../../../../../../src/cyclone_crypto/ecc/x25519.h \
	../../../../../../src/cyclone_crypto/ecc/x448.h \
	../../../../../../src/cyclone_crypto/ecc/ed25519.h \
	../../../../../../src/cyclone_crypto/ecc/ed448.h \
	../../../../../../src/cyclone_crypto/pqc/kem.h \
	../../../../../../src/cyclone_crypto/pqc/mlkem768.h \
	../../../../../../src/cyclone_crypto/pqc/mlkem1024.h \
	../../../../../../src/cyclone_crypto/pqc/sntrup761.h \
	../../../../../../src/cyclone_crypto/mpi/mpi.h \
	../../../../../../src/cyclone_crypto/mpi/mpi_misc.h \
	../../../../../../src/cyclone_crypto/encoding/base64.h \
	../../../../../../src/cyclone_crypto/encoding/asn1.h \
	../../../../../../src/cyclone_crypto/encoding/oid.h \
	../../../../../../src/cyclone_crypto/pkix/pem_import.h \
	../../../../../../src/cyclone_crypto/pkix/pem_key_import.h \
	../../../../../../src/cyclone_crypto/pkix/pem_decrypt.h \
	../../../../../../src/cyclone_crypto/pkix/pem_common.h \
	../../../../../../src/cyclone_crypto/pkix/pkcs5_decrypt.h \
	../../../../../../src/cyclone_crypto/pkix/pkcs5_common.h \
	../../../../../../src/cyclone_crypto/pkix/pkcs8_key_parse.h \
	../../../../../../src/cyclone_crypto/pkix/x509_key_parse.h \
	../../../../../../src/cyclone_crypto/pkix/x509_common.h \
	../../../../../../src/cyclone_crypto/kdf/pbkdf.h \
	../../../../../../src/cyclone_crypto/xof/keccak.h \
	../../../../../../src/cyclone_crypto/xof/shake.h \
	../../../../../../src/cyclone_crypto/rng/yarrow.h \
	../../../../../../src/cyclone_crypto/ecc/ec_misc.h \
	../../../../../../src/cyclone_crypto/pkc/rsa_misc.h \
	../../../../../../third_party/freertos/portable/gcc/arm_cm33_ntz/non_secure/portmacro.h \
	../../../../../../third_party/freertos/portable/gcc/arm_cm33_ntz/non_secure/portasm.h \
	../../../../../../third_party/freertos/include/croutine.h \
	../../../../../../third_party/freertos/include/FreeRTOS.h \
	../../../../../../third_party/freertos/include/list.h \
	../../../../../../third_party/freertos/include/mpu_wrappers.h \
	../../../../../../third_party/freertos/include/portable.h \
	../../../../../../third_party/freertos/include/projdefs.h \
	../../../../../../third_party/freertos/include/queue.h \
	../../../../../../third_party/freertos/include/semphr.h \
	../../../../../../third_party/freertos/include/stack_macros.h \
	../../../../../../third_party/freertos/include/task.h \
	../../../../../../third_party/freertos/include/timers.h \
	../../../../../../third_party/st/boards/stm32h5xx_nucleo/stm32h5xx_nucleo.h \
	../../../../../../third_party/st/boards/stm32h5xx_nucleo/stm32h5xx_nucleo_usbpd_pwr.h \
	../../../../../../third_party/st/boards/stm32h5xx_nucleo/stm32h5xx_nucleo_errno.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_adc.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_adc_ex.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_cec.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_comp.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_cordic.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_cortex.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_crc.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_crc_ex.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_cryp.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_cryp_ex.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_dac.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_dac_ex.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_dcache.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_dcmi.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_def.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_dma.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_dma_ex.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_dts.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_eth.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_eth_ex.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_exti.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_fdcan.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_flash.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_flash_ex.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_fmac.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_gpio.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_gpio_ex.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_gtzc.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_hash.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_hcd.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_i2c.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_i2c_ex.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_i2s.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_i2s_ex.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_i3c.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_icache.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_irda.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_irda_ex.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_iwdg.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_lptim.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_mmc.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_mmc_ex.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_nand.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_nor.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_opamp.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_opamp_ex.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_otfdec.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_pcd.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_pcd_ex.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_pka.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_pssi.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_pwr.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_pwr_ex.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_ramcfg.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_rcc.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_rcc_ex.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_rng.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_rng_ex.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_rtc.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_rtc_ex.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_sai.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_sai_ex.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_sd.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_sdram.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_sd_ex.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_smartcard.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_smartcard_ex.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_smbus.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_smbus_ex.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_spi.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_spi_ex.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_sram.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_tim.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_tim_ex.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_uart.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_uart_ex.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_usart.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_usart_ex.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_wwdg.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_hal_xspi.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_adc.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_bus.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_comp.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_cordic.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_cortex.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_crc.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_crs.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_dac.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_dcache.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_dlyb.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_dma.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_exti.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_fmac.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_fmc.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_gpio.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_i2c.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_i3c.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_icache.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_iwdg.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_lptim.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_lpuart.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_opamp.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_pka.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_pwr.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_rcc.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_rng.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_rtc.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_sdmmc.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_spi.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_system.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_tim.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_ucpd.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_usart.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_usb.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_utils.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_ll_wwdg.h \
	../../../../../../third_party/st/drivers/stm32h5xx_hal_driver/inc/stm32h5xx_util_i3c.h

ASM_OBJECTS = $(patsubst %.S, %.o, $(ASM_SOURCES))

C_OBJECTS = $(patsubst %.c, %.o, $(C_SOURCES))

OBJ_DIR = obj_build


LINKER_SCRIPT = stm32h563_flash.ld

CFLAGS += -fno-common -Wall -Os -g3
CFLAGS += -mcpu=cortex-m33 -mthumb -mfpu=fpv5-sp-d16 -mfloat-abi=softfp
CFLAGS += -ffunction-sections -fdata-sections -Wl,--gc-sections
CFLAGS += $(DEFINES)
CFLAGS += $(INCLUDES)

CROSS_COMPILE ?= arm-none-eabi-
CC = $(CROSS_COMPILE)gcc
LD = $(CROSS_COMPILE)ld
OBJDUMP = $(CROSS_COMPILE)objdump
OBJCOPY = $(CROSS_COMPILE)objcopy
SIZE = $(CROSS_COMPILE)size

THIS_MAKEFILE := $(lastword $(MAKEFILE_LIST))
PYTHON := $(shell command -v python3 || command -v python)
RC = ../../../../../../tools/ResourceCompiler/bin/rc

all:
	$(MAKE) pre-build build size
	$(MAKE) post-build

install:
	$(MAKE) pre-build build size
	$(MAKE) post-build
	$(MAKE) flash

pre-build:
	$(RC) ../resources/ ../src/res.c

post-build:
	$(PYTHON) ../scripts/misc/copy_file.py iap_demo.bin ../


build: $(RESULT).elf $(RESULT).lst $(RESULT).bin $(RESULT).hex

$(RESULT).elf: $(ASM_OBJECTS) $(C_OBJECTS) $(HEADERS) $(LINKER_SCRIPT) $(THIS_MAKEFILE)
	$(CC) -Wl,-M=$(RESULT).map -Wl,-T$(LINKER_SCRIPT) $(CFLAGS) $(addprefix $(OBJ_DIR)/, $(notdir $(ASM_OBJECTS))) $(addprefix $(OBJ_DIR)/, $(notdir $(C_OBJECTS))) -o $@

$(ASM_OBJECTS): | $(OBJ_DIR)

$(C_OBJECTS): | $(OBJ_DIR)

$(OBJ_DIR):
	mkdir -p $@

%.o: %.c $(HEADERS) $(THIS_MAKEFILE)
	$(CC) $(CFLAGS) -c $< -o $(addprefix $(OBJ_DIR)/, $(notdir $@))

%.o: %.S $(HEADERS) $(THIS_MAKEFILE)
	$(CC) $(CFLAGS) -c $< -o $(addprefix $(OBJ_DIR)/, $(notdir $@))

%.lst: %.elf
	$(OBJDUMP) -x -S $(RESULT).elf > $@

%.bin: %.elf
	$(OBJCOPY) -O binary $< $@

%.hex: %.elf
	$(OBJCOPY) -O ihex $< $@

size: $(RESULT).elf
	$(SIZE) $(RESULT).elf

flash:
	openocd -f board/st_nucleo_h5.cfg -c "init; reset halt; flash write_image erase $(RESULT).bin 0x08000000; reset run; shutdown"

clean:
	rm -f $(RESULT).elf
	rm -f $(RESULT).bin
	rm -f $(RESULT).map
	rm -f $(RESULT).hex
	rm -f $(RESULT).lst
	rm -f $(OBJ_DIR)/*.o
