ifneq (,$(filter arduino,$(USEMODULE))) FEATURES_OPTIONAL += periph_adc FEATURES_OPTIONAL += periph_i2c FEATURES_OPTIONAL += periph_spi FEATURES_REQUIRED += arduino FEATURES_REQUIRED += cpp FEATURES_REQUIRED += periph_gpio FEATURES_REQUIRED += periph_uart USEMODULE += arduino_sketches USEMODULE += fmt USEMODULE += ztimer_usec USEMODULE += ztimer_msec ifneq (,$(filter stdio_cdc_acm,$(USEMODULE))) USEMODULE += arduino_serial_stdio endif endif ifneq (,$(filter arduino_pwm,$(FEATURES_USED))) FEATURES_REQUIRED += periph_pwm endif # cannot be moved to GNRC's Makefile.dep, as module name neither starts or ends with gnrc ifneq (,$(filter auto_init_gnrc_netif,$(USEMODULE))) USEMODULE += gnrc_netif_init_devs endif ifneq (,$(filter auto_init_wdt_thread,$(USEMODULE))) USEMODULE += periph_wdt_auto_start USEMODULE += ztimer_msec # we can only have either auto_init_wdt_event or auto_init_wdt_thread ifneq (,$(filter auto_init_wdt_event,$(USEMODULE))) $(error auto_init_wdt_event and auto_init_wdt_thread are mutually exclusive) endif endif ifneq (,$(filter auto_init_wdt_event,$(USEMODULE))) USEMODULE += event_periodic_callback USEMODULE += event_thread USEMODULE += periph_wdt_auto_start USEMODULE += ztimer_msec endif ifneq (,$(filter auto_init_sock_dns,$(USEMODULE))) ifneq (,$(filter ipv4,$(USEMODULE))) USEMODULE += ipv4_addr endif ifneq (,$(filter ipv6,$(USEMODULE))) USEMODULE += ipv6_addr endif endif ifneq (,$(filter coding,$(USEMODULE))) USEMODULE += bitfield endif ifneq (,$(filter congure_%,$(USEMODULE))) USEMODULE += congure endif ifneq (,$(filter congure_abe,$(USEMODULE))) USEMODULE += congure_reno_methods endif ifneq (,$(filter congure_quic,$(USEMODULE))) USEMODULE += ztimer_msec endif ifneq (,$(filter congure_test,$(USEMODULE))) USEMODULE += fmt endif ifneq (,$(filter congure_reno,$(USEMODULE))) USEMODULE += congure_reno_methods endif ifneq (,$(filter congure_reno_methods,$(USEMODULE))) USEMODULE += seq endif ifneq (,$(filter crc16_fast,$(USEMODULE))) USEMODULE += checksum endif ifneq (,$(filter crc32_fast,$(USEMODULE))) USEMODULE += checksum endif ifneq (,$(filter debug_irq_disable,$(USEMODULE))) USEMODULE += fmt endif ifneq (,$(filter eepreg,$(USEMODULE))) FEATURES_REQUIRED += periph_eeprom endif ifneq (,$(filter fmt_table,$(USEMODULE))) USEMODULE += fmt endif ifneq (,$(filter prng_fortuna,$(USEMODULE))) USEMODULE += crypto_aes_128 endif ifneq (,$(filter crypto_%,$(USEMODULE))) USEMODULE += crypto endif ifneq (,$(filter cipher_modes,$(USEMODULE))) USEMODULE += crypto endif ifneq (,$(filter crypto,$(USEMODULE))) DEFAULT_MODULE += crypto_aes_128 endif ifneq (,$(filter sys_bus_%,$(USEMODULE))) USEMODULE += sys_bus USEMODULE += core_msg_bus endif ifneq (,$(filter ieee802154_security,$(USEMODULE))) USEMODULE += crypto USEMODULE += crypto_aes_128 USEMODULE += cipher_modes endif ifneq (,$(filter trace,$(USEMODULE))) USEMODULE += ztimer USEMODULE += ztimer_usec endif ifneq (,$(filter shell_lock,$(USEMODULE))) USEMODULE += ztimer_msec endif ifneq (,$(filter ssp,$(USEMODULE))) FEATURES_REQUIRED += ssp endif ifneq (,$(filter base64url,$(USEMODULE))) USEMODULE += base64 endif ifneq (,$(filter csma_sender,$(USEMODULE))) USEMODULE += random USEMODULE += ztimer_usec endif ifneq (,$(filter dhcpv6_%,$(USEMODULE))) USEMODULE += dhcpv6 endif ifneq (,$(filter dhcpv6_client,$(USEMODULE))) USEMODULE += event USEMODULE += event_timeout ifneq (,$(filter ztimer,$(USEMODULE))) USEMODULE += event_timeout_ztimer USEMODULE += ztimer_msec ztimer_sec endif USEMODULE += random ifneq (,$(filter sock_dns,$(USEMODULE))) USEMODULE += dhcpv6_client_dns endif endif ifneq (,$(filter dhcpv6_relay,$(USEMODULE))) DEFAULT_MODULE += auto_init_dhcpv6_relay USEMODULE += event USEMODULE += sock_async_event USEMODULE += sock_udp endif ifneq (,$(filter dns_%,$(USEMODULE))) USEMODULE += dns endif ifneq (,$(filter fuzzing,$(USEMODULE))) USEMODULE += netdev_test USEMODULE += gnrc_netif USEMODULE += gnrc_pktbuf_malloc endif # include GNRC dependencies ifneq (,$(filter gnrc% %gnrc,$(USEMODULE))) include $(RIOTBASE)/sys/net/gnrc/Makefile.dep endif ifneq (,$(filter sntp,$(USEMODULE))) USEMODULE += sock_udp USEMODULE += xtimer ifneq (,$(filter ztimer_xtimer_compat,$(USEMODULE))) # requires 64bit ftimestamps USEMODULE += ztimer64_xtimer_compat endif endif ifneq (,$(filter sock_%,$(USEMODULE))) USEMODULE += iolist endif ifneq (,$(filter netdev_ieee802154,$(USEMODULE))) USEMODULE += ieee802154 USEMODULE += random endif ifneq (,$(filter netdev_ieee802154_submac,$(USEMODULE))) USEMODULE += netdev_ieee802154 USEMODULE += netdev_legacy_api USEMODULE += ieee802154 USEMODULE += ieee802154_submac USEMODULE += ztimer_usec endif ifneq (,$(filter uhcpc,$(USEMODULE))) USEMODULE += posix_inet USEMODULE += ztimer_msec endif ifneq (,$(filter netdev_tap,$(USEMODULE))) USEMODULE += netif USEMODULE += netdev_eth USEMODULE += iolist endif ifneq (,$(filter trickle,$(USEMODULE))) USEMODULE += random USEMODULE += ztimer_msec endif ifneq (,$(filter eui_provider,$(USEMODULE))) USEMODULE += luid endif ifneq (,$(filter ieee802154 nrfmin esp_now cc110x,$(USEMODULE))) ifneq (,$(filter lwip%, $(USEMODULE))) USEMODULE += lwip_sixlowpan endif endif ifneq (,$(filter sixlowpan,$(USEMODULE))) USEMODULE += ipv6_hdr endif ifneq (,$(filter ipv6_hdr,$(USEMODULE))) USEMODULE += inet_csum USEMODULE += ipv6_addr endif ifneq (,$(filter ieee802154_submac,$(USEMODULE))) USEMODULE += ztimer_usec USEMODULE += random endif ifneq (,$(filter l2util,$(USEMODULE))) USEMODULE += fmt endif ifneq (,$(filter od,$(USEMODULE))) USEMODULE += fmt endif ifneq (,$(filter od_string,$(USEMODULE))) USEMODULE += od endif ifneq (,$(filter netutils,$(USEMODULE))) USEMODULE += ipv6_addr endif ifneq (,$(filter newlib_gnu_source,$(USEMODULE))) FEATURES_REQUIRED += newlib endif ifneq (,$(filter newlib_nano,$(USEMODULE))) FEATURES_REQUIRED += newlib endif ifneq (,$(filter newlib,$(USEMODULE))) # allow custom newlib syscalls implementations by adding # newlib_syscalls_XXX to USEMODULE ifeq (,$(filter newlib_syscalls_%,$(USEMODULE))) USEMODULE += newlib_syscalls_default endif ifneq (,$(filter newlib_syscalls_default,$(USEMODULE))) USEMODULE += div ifneq (,$(filter libc_gettimeofday,$(USEMODULE))) USEMODULE += xtimer ifneq (,$(filter ztimer_xtimer_compat,$(USEMODULE))) # requires 64bit timestamps USEMODULE += ztimer64_xtimer_compat endif endif endif endif ifneq (,$(filter posix_select,$(USEMODULE))) ifneq (,$(filter posix_sockets,$(USEMODULE))) USEMODULE += sock_async endif USEMODULE += core_thread_flags USEMODULE += posix_headers USEMODULE += ztimer64_usec endif ifneq (,$(filter picolibc,$(USEMODULE))) # allow custom picolibc syscalls implementations by adding # picolibc_syscalls_XXX to USEMODULE ifeq (,$(filter picolibc_syscalls_%,$(USEMODULE))) USEMODULE += picolibc_syscalls_default endif endif ifneq (,$(filter posix_sockets,$(USEMODULE))) USEMODULE += bitfield USEMODULE += random USEMODULE += vfs USEMODULE += posix_headers endif ifneq (,$(filter md5sum ,$(USEMODULE))) USEMODULE += shell_cmd_md5sum endif ifneq (,$(filter sha1sum,$(USEMODULE))) USEMODULE += shell_cmd_sha1sum endif ifneq (,$(filter sha256sum,$(USEMODULE))) USEMODULE += shell_cmd_sha256sum endif ifneq (,$(filter random_cmd,$(USEMODULE))) USEMODULE += shell_cmd_random endif ifneq (,$(filter shell_commands,$(USEMODULE))) # shell_commands has been renamed to shell_cmds_default, but let's keep this # for backward compatibility USEMODULE += shell_cmds_default endif ifneq (,$(filter shell_cmd%,$(USEMODULE))) # each and every command is a submodule of shell_cmds USEMODULE += shell_cmds endif ifneq (,$(filter shell_cmds,$(USEMODULE))) USEMODULE += shell endif # Include all stdio_% dependencies after all USEMODULE += stdio_% include $(RIOTBASE)/makefiles/stdio.inc.mk ifneq (,$(filter isrpipe,$(USEMODULE))) USEMODULE += tsrb endif ifneq (,$(filter isrpipe_read_timeout,$(USEMODULE))) USEMODULE += isrpipe USEMODULE += ztimer_usec endif ifneq (,$(filter md5sum sha1sum sha256sum,$(USEMODULE))) USEMODULE += vfs_util USEMODULE += hashes endif ifneq (,$(filter posix_semaphore,$(USEMODULE))) USEMODULE += sema_deprecated USEMODULE += ztimer64_usec USEMODULE += posix_headers endif ifneq (,$(filter posix_sleep,$(USEMODULE))) USEMODULE += ztimer_msec USEMODULE += ztimer_usec USEMODULE += posix_headers endif ifneq (,$(filter posix_inet,$(USEMODULE))) USEMODULE += posix_headers endif ifneq (,$(filter sema_inv,$(USEMODULE))) USEMODULE += atomic_utils endif ifneq (,$(filter sema,$(USEMODULE))) USEMODULE += ztimer endif ifneq (,$(filter sema_deprecated,$(USEMODULE))) USEMODULE += sema USEMODULE += ztimer64 USEMODULE += ztimer64_usec endif ifneq (,$(filter telnet,$(USEMODULE))) USEMODULE += pipe USEMODULE += sock_tcp endif ifneq (,$(filter luid,$(USEMODULE))) FEATURES_OPTIONAL += periph_cpuid endif ifneq (,$(filter fib,$(USEMODULE))) USEMODULE += universal_address USEMODULE += xtimer ifneq (,$(filter ztimer_xtimer_compat,$(USEMODULE))) USEMODULE += ztimer64_xtimer_compat endif USEMODULE += posix_headers endif # if any log_* is used, also use LOG pseudomodule ifneq (,$(filter log_%,$(USEMODULE))) USEMODULE += log endif ifneq (,$(filter log_color,$(USEMODULE))) # log_color fails to compile with -Wformat-nonliteral but this is required # for the wrapped stdio that pushes the format string into progmem FEATURES_BLACKLIST += arch_avr8 endif ifneq (,$(filter cpp11-compat,$(USEMODULE))) USEMODULE += cpp_new_delete USEMODULE += ztimer64_usec USEMODULE += timex FEATURES_REQUIRED += cpp FEATURES_REQUIRED += libstdcpp ifneq (,$(filter ztimer_xtimer_compat,$(USEMODULE))) # requires 64bit for syscalls USEMODULE += ztimer64_xtimer_compat endif endif ifneq (,$(filter netstats_%, $(USEMODULE))) USEMODULE += netstats endif ifneq (,$(filter netstats_neighbor_%, $(USEMODULE))) USEMODULE += netstats_neighbor USEMODULE += xtimer endif ifneq (,$(filter pthread,$(USEMODULE))) USEMODULE += ztimer64_usec USEMODULE += timex ifneq (,$(filter ztimer_xtimer_compat,$(USEMODULE))) # requires 64bit ftimestamps USEMODULE += ztimer64_xtimer_compat endif endif ifneq (,$(filter schedstatistics,$(USEMODULE))) USEMODULE += ztimer_usec USEMODULE += sched_cb endif ifneq (,$(filter sched_round_robin,$(USEMODULE))) # this depends on either ztimer_usec or ztimer_msec if neither is used # prior to this msec is preferred ifeq (,$(filter ztimer_usec,$(USEMODULE))$(filter ztimer_msec,$(USEMODULE))) USEMODULE += ztimer_msec endif USEMODULE += sched_runq_callback endif ifneq (,$(filter saul_reg,$(USEMODULE))) USEMODULE += saul endif ifneq (,$(filter saul_default,$(USEMODULE))) DEFAULT_MODULE += auto_init_saul DEFAULT_MODULE += saul_init_devs USEMODULE += saul USEMODULE += saul_reg endif ifneq (,$(filter senml%,$(USEMODULE))) include $(RIOTBASE)/sys/senml/Makefile.dep endif ifneq (,$(filter phydat,$(USEMODULE))) USEMODULE += fmt endif ifneq (,$(filter pm_layered,$(USEMODULE))) FEATURES_REQUIRED += periph_pm endif ifneq (,$(filter evtimer_mbox,$(USEMODULE))) USEMODULE += evtimer USEMODULE += core_mbox endif ifneq (,$(filter can,$(USEMODULE))) USEMODULE += can_raw ifneq (,$(filter can_mbox,$(USEMODULE))) USEMODULE += core_mbox endif USEMODULE += memarray endif ifneq (,$(filter can_isotp,$(USEMODULE))) USEMODULE += ztimer USEMODULE += ztimer_usec USEMODULE += gnrc_pktbuf endif ifneq (,$(filter conn_can,$(USEMODULE))) USEMODULE += can USEMODULE += can_mbox USEMODULE += ztimer USEMODULE += ztimer_usec endif ifneq (,$(filter entropy_source_%,$(USEMODULE))) USEMODULE += entropy_source ifneq (,$(filter entropy_source_adc_noise,$(USEMODULE))) FEATURES_REQUIRED += periph_adc endif endif ifneq (,$(filter puf_sram,$(USEMODULE))) USEMODULE += hashes USEMODULE += random FEATURES_REQUIRED += puf_sram endif ifneq (,$(filter random,$(USEMODULE))) DEFAULT_MODULE += auto_init_random USEMODULE += prng ifneq (,$(filter prng_fortuna,$(USEMODULE))) USEMODULE += fortuna USEMODULE += hashes USEMODULE += crypto ifneq (,$(filter fortuna_reseed,$(USEMODULE))) USEMODULE += atomic_utils USEMODULE += xtimer endif endif ifneq (,$(filter prng_tinymt32,$(USEMODULE))) USEMODULE += tinymt32 endif ifneq (,$(filter prng_sha%prng,$(USEMODULE))) USEMODULE += prng_shaxprng USEMODULE += hashes endif ifneq (,$(filter prng_hwrng,$(USEMODULE))) FEATURES_REQUIRED += periph_hwrng endif ifeq (,$(filter puf_sram,$(USEMODULE))) FEATURES_OPTIONAL += periph_hwrng endif USEMODULE += luid endif ifneq (,$(filter hashes,$(USEMODULE))) USEMODULE += crypto endif ifneq (,$(filter asymcute,$(USEMODULE))) USEMODULE += sock_udp USEMODULE += sock_util USEMODULE += sock_async_event USEMODULE += random USEMODULE += event_timeout USEMODULE += event_callback endif ifneq (,$(filter event_periodic_callback,$(USEMODULE))) USEMODULE += event_callback USEMODULE += event_periodic endif ifneq (,$(filter emcute,$(USEMODULE))) USEMODULE += core_thread_flags USEMODULE += sock_udp USEMODULE += xtimer endif ifneq (,$(filter constfs,$(USEMODULE))) USEMODULE += vfs endif ifneq (,$(filter devfs,$(USEMODULE))) USEMODULE += vfs endif ifneq (,$(filter vfs_default,$(USEMODULE))) USEMODULE += vfs DEFAULT_MODULE += vfs_auto_mount endif ifneq (,$(filter vfs_util,$(USEMODULE))) USEMODULE += vfs endif ifneq (,$(filter vfs,$(USEMODULE))) USEMODULE += posix_headers ifeq (native, $(BOARD)) USEMODULE += native_vfs endif endif ifneq (,$(filter sock_async_event,$(USEMODULE))) USEMODULE += sock_async USEMODULE += event endif ifneq (,$(filter sock_async,$(USEMODULE))) ifneq (,$(filter openwsn%,$(USEMODULE))) USEMODULE += openwsn_sock_async endif endif ifneq (,$(filter sock_dns,$(USEMODULE))) USEMODULE += dns_msg USEMODULE += sock_udp USEMODULE += sock_util USEMODULE += posix_headers endif ifneq (,$(filter sock_dns_mock,$(USEMODULE))) USEMODULE += dns endif ifneq (,$(filter sock_dodtls,$(USEMODULE))) USEMODULE += dns_msg USEMODULE += sock_dtls USEMODULE += sock_udp USEMODULE += sock_util USEMODULE += posix_headers USEMODULE += ztimer_msec endif ifneq (,$(filter dns_cache,$(USEMODULE))) USEMODULE += ztimer_msec USEMODULE += checksum endif ifneq (,$(filter sock_util,$(USEMODULE))) USEMODULE += posix_inet USEMODULE += fmt endif ifneq (,$(filter event_%,$(USEMODULE))) USEMODULE += event endif ifneq (,$(filter event_thread_%,$(USEMODULE))) USEMODULE += event_thread endif ifneq (,$(filter event_timeout_ztimer,$(USEMODULE))) USEMODULE += ztimer endif ifneq (,$(filter event_timeout,$(USEMODULE))) USEMODULE += event_timeout_ztimer USEMODULE += ztimer_usec endif ifneq (,$(filter event,$(USEMODULE))) USEMODULE += core_thread_flags endif ifneq (,$(filter l2filter_%,$(USEMODULE))) USEMODULE += l2filter endif ifneq (,$(filter gcoap_fileserver,$(USEMODULE))) USEMODULE += gcoap USEMODULE += checksum USEMODULE += vfs endif ifneq (,$(filter gcoap_fileserver_delete,$(USEMODULE))) USEMODULE += gcoap_fileserver USEMODULE += vfs_util endif ifneq (,$(filter gcoap_fileserver_put,$(USEMODULE))) USEMODULE += gcoap_fileserver endif ifneq (,$(filter gcoap_forward_proxy,$(USEMODULE))) USEMODULE += gcoap USEMODULE += uri_parser endif ifneq (,$(filter gcoap_dtls,$(USEMODULE))) USEMODULE += gcoap USEMODULE += dsm USEMODULE += sock_async_event USEMODULE += sock_dtls USEMODULE += ztimer_msec USEMODULE += ztimer_usec USEMODULE += event_thread USEMODULE += event_timeout_ztimer endif ifneq (,$(filter dsm,$(USEMODULE))) USEMODULE += sock_dtls USEMODULE += xtimer ifneq (,$(filter ztimer_xtimer_compat,$(USEMODULE))) # requires 64bit timestamps when using xtimer USEMODULE += ztimer64_xtimer_compat endif endif ifneq (,$(filter gcoap,$(USEMODULE))) USEMODULE += nanocoap USEMODULE += sock_async_event USEMODULE += sock_aux_local USEMODULE += sock_udp USEMODULE += sock_util USEMODULE += ztimer_msec USEMODULE += ztimer_usec USEMODULE += event_callback USEMODULE += event_timeout_ztimer USEMODULE += random endif ifneq (,$(filter gcoap_dns,$(USEMODULE))) USEMODULE += dns_msg USEMODULE += gcoap USEMODULE += ipv4_addr USEMODULE += ipv6_addr USEMODULE += uri_parser USEMODULE += sock_util endif ifneq (,$(filter luid,$(USEMODULE))) FEATURES_OPTIONAL += periph_cpuid endif ifneq (,$(filter nanocoap_dtls,$(USEMODULE))) USEMODULE += sock_dtls USEPKG += tinydtls endif ifneq (,$(filter nanocoap_server_auto_init,$(USEMODULE))) USEMODULE += nanocoap_server endif ifneq (,$(filter nanocoap_server,$(USEMODULE))) USEMODULE += nanocoap_resources USEMODULE += nanocoap_sock endif ifneq (,$(filter nanocoap_sock,$(USEMODULE))) USEMODULE += sock_udp USEMODULE += sock_util USEMODULE += ztimer_msec endif ifneq (,$(filter nanocoap_cache,$(USEMODULE))) USEMODULE += ztimer_sec USEMODULE += hashes endif ifneq (,$(filter nanocoap_link_format,$(USEMODULE))) USEMODULE += fmt endif ifneq (,$(filter nanocoap_vfs,$(USEMODULE))) USEMODULE += nanocoap_sock USEMODULE += vfs endif ifneq (,$(filter nanocoap_%,$(USEMODULE))) USEMODULE += nanocoap endif ifneq (,$(filter benchmark,$(USEMODULE))) USEMODULE += ztimer_usec endif ifneq (,$(filter skald_%,$(USEMODULE))) USEMODULE += skald endif ifneq (,$(filter skald,$(USEMODULE))) FEATURES_REQUIRED += radio_nrfble FEATURES_OPTIONAL += periph_rtt USEMODULE += nrfble USEMODULE += random USEMODULE += ztimer_msec endif ifneq (,$(filter bluetil_addr,$(USEMODULE))) USEMODULE += fmt endif ifneq (,$(filter cord_common,$(USEMODULE))) USEMODULE += fmt USEMODULE += luid USEMODULE += gcoap endif ifneq (,$(filter cord_lc cord_ep,$(USEMODULE))) USEMODULE += core_thread_flags USEMODULE += cord_common ifneq (,$(filter ztimer_xtimer_compat,$(USEMODULE))) # requires 64bit timestamps when using xtimer USEMODULE += ztimer64_xtimer_compat endif endif ifneq (,$(filter cord_epsim,$(USEMODULE))) USEMODULE += cord_common endif ifneq (,$(filter cord_ep_standalone,$(USEMODULE))) USEMODULE += cord_ep USEMODULE += ztimer_msec endif ifneq (,$(filter cord_lc,$(USEMODULE))) USEMODULE += clif endif ifneq (,$(filter usbus,$(USEMODULE))) DEFAULT_MODULE += auto_init_usbus USEMODULE += core_thread_flags USEMODULE += event USEMODULE += luid USEMODULE += fmt ifeq (,$(filter usbdev_mock,$(USEMODULE))) FEATURES_REQUIRED += periph_usbdev endif endif ifneq (,$(filter usbus_cdc_acm,$(USEMODULE))) USEMODULE += tsrb USEMODULE += usbus endif ifneq (,$(filter usbus_cdc_ecm,$(USEMODULE))) USEMODULE += iolist USEMODULE += fmt USEMODULE += usbus USEMODULE += usbus_urb USEMODULE += netdev_eth USEMODULE += luid endif ifneq (,$(filter usbus_hid,$(USEMODULE))) USEMODULE += isrpipe_read_timeout USEMODULE += usbus endif ifneq (,$(filter usbus_dfu,$(USEMODULE))) FEATURES_REQUIRED += riotboot USEMODULE += usbus USEMODULE += riotboot_slot endif ifneq (,$(filter ut_process,$(USEMODULE))) USEMODULE += fmt endif ifneq (,$(filter usbus_msc,$(USEMODULE))) USEMODULE += usbus USEMODULE += mtd USEMODULE += mtd_write_page endif ifneq (,$(filter uuid,$(USEMODULE))) USEMODULE += hashes USEMODULE += random USEMODULE += fmt endif ifneq (,$(filter riotboot_flashwrite, $(USEMODULE))) USEMODULE += riotboot_slot FEATURES_REQUIRED += periph_flashpage endif ifneq (,$(filter riotboot_slot, $(USEMODULE))) USEMODULE += riotboot_hdr endif ifneq (,$(filter riotboot_serial, $(USEMODULE))) FEATURES_REQUIRED += periph_flashpage FEATURES_REQUIRED += periph_uart USEMODULE += riotboot_reset USEMODULE += checksum endif ifneq (,$(filter riotboot_reset, $(USEMODULE))) USEMODULE += riotboot USEMODULE += usb_board_reset endif ifneq (,$(filter riotboot_hdr, $(USEMODULE))) USEMODULE += checksum USEMODULE += riotboot endif ifneq (,$(filter riotboot_usb_dfu, $(USEMODULE))) USEMODULE += usbus_dfu USEMODULE += riotboot_flashwrite USEMODULE += ztimer_sec FEATURES_REQUIRED += no_idle_thread FEATURES_REQUIRED += periph_pm endif ifneq (,$(filter riotboot_tinyusb_dfu, $(USEMODULE))) USEPKG += tinyusb endif ifneq (,$(filter irq_handler,$(USEMODULE))) USEMODULE += event endif ifneq (,$(filter sock_dtls, $(USEMODULE))) USEMODULE += credman USEMODULE += sock_udp endif ifneq (,$(filter credman_load, $(USEMODULE))) USEPKG += tiny-asn1 endif ifneq (,$(filter suit,$(USEMODULE))) USEPKG += nanocbor USEPKG += libcose USEMODULE += uuid ifeq (,$(filter libcose_crypt_%,$(USEMODULE))) USEMODULE += libcose_crypt_c25519 endif endif ifneq (,$(filter suit_transport_%, $(USEMODULE))) USEMODULE += suit_transport USEMODULE += suit_transport_worker endif ifneq (,$(filter suit_transport_coap, $(USEMODULE))) USEMODULE += nanocoap_sock USEMODULE += ztimer_msec USEMODULE += sock_util endif ifneq (,$(filter suit_transport_vfs, $(USEMODULE))) USEMODULE += vfs_util endif ifneq (,$(filter suit_storage_%, $(USEMODULE))) USEMODULE += suit_storage endif ifneq (,$(filter suit_storage_flashwrite, $(USEMODULE))) FEATURES_REQUIRED += riotboot USEMODULE += riotboot_slot USEMODULE += riotboot_flashwrite USEMODULE += riotboot_flashwrite_verify_sha256 endif ifneq (,$(filter suit_storage_vfs,$(USEMODULE))) USEMODULE += vfs USEMODULE += mtd endif ifneq (,$(filter suit_%,$(USEMODULE))) USEMODULE += suit endif ifneq (,$(filter tiny_strerror_as_strerror,$(USEMODULE))) USEMODULE += tiny_strerror endif # include ztimer dependencies ifneq (,$(filter ztimer ztimer_% %ztimer,$(USEMODULE))) include $(RIOTBASE)/sys/ztimer/Makefile.dep endif # include ztimer64 dependencies ifneq (,$(filter ztimer64%,$(USEMODULE))) include $(RIOTBASE)/sys/ztimer64/Makefile.dep endif ifneq (,$(filter evtimer,$(USEMODULE))) USEMODULE += ztimer_msec endif # handle xtimer's deps. Needs to be done *after* ztimer ifneq (,$(filter xtimer,$(USEMODULE))) include $(RIOTBASE)/sys/xtimer/Makefile.dep endif ifneq (,$(filter devfs_hwrng,$(USEMODULE))) FEATURES_REQUIRED += periph_hwrng endif ifneq (,$(filter devfs_random,$(USEMODULE))) USEMODULE += random endif ifneq (,$(filter ecc_%,$(USEMODULE))) USEMODULE += ecc endif ifneq (,$(filter bhp_%,$(USEMODULE))) USEMODULE += bhp endif ifneq (,$(filter dbgpin,$(USEMODULE))) FEATURES_REQUIRED += periph_gpio FEATURES_REQUIRED += dbgpin endif ifneq (,$(filter fido2_ctap_%,$(USEMODULE))) USEMODULE += fido2_ctap_transport USEMODULE += fido2_ctap ifneq (,$(filter fido2_ctap_transport_hid,$(USEMODULE))) USEMODULE += ztimer64_msec USEMODULE += usbus_hid DISABLE_MODULE += auto_init_usbus endif endif ifneq (,$(filter fido2_ctap,$(USEMODULE))) FEATURES_REQUIRED += periph_flashpage FEATURES_REQUIRED += periph_flashpage_in_address_space FEATURES_REQUIRED += periph_gpio_irq USEPKG += tiny-asn1 USEPKG += tinycbor USEPKG += micro-ecc USEMODULE += mtd_flashpage USEMODULE += mtd_write_page USEMODULE += ztimer_msec USEMODULE += event USEMODULE += event_timeout_ztimer USEMODULE += cipher_modes USEMODULE += crypto_aes_256 USEMODULE += hashes USEMODULE += fido2 endif ifneq (,$(filter rust_riotmodules,$(USEMODULE))) include $(RIOTBASE)/sys/rust_riotmodules/Makefile.dep endif ifneq (,$(filter auto_init%,$(USEMODULE))) USEMODULE += preprocessor_successor endif ifneq (,$(filter uri_parser,$(USEMODULE))) USEMODULE += fmt endif include $(RIOTBASE)/sys/test_utils/Makefile.dep