From 9a89b84c2c681b5559649d5f25b1ada482b0b5ba Mon Sep 17 00:00:00 2001 From: Karl Fessel Date: Fri, 25 Sep 2020 17:33:03 +0200 Subject: [PATCH] Makefile.dep: sort dependencies move most dependencies from /Makefile.dep to the Makefile.dep where dependant module resides --- Makefile.dep | 1037 +-------------------------------------- cpu/native/Makefile.dep | 4 + drivers/Makefile.dep | 30 ++ pkg/lwip/Makefile.dep | 64 +++ sys/Makefile.dep | 937 +++++++++++++++++++++++++++++++++++ 5 files changed, 1036 insertions(+), 1036 deletions(-) diff --git a/Makefile.dep b/Makefile.dep index d690123fbd..c7b9ced15b 100644 --- a/Makefile.dep +++ b/Makefile.dep @@ -21,10 +21,6 @@ include $(RIOTBASE)/drivers/Makefile.dep # pull dependencies from packages -include $(USEPKG:%=$(RIOTPKG)/%/Makefile.dep) -ifneq (,$(filter ssp,$(USEMODULE))) - FEATURES_REQUIRED += ssp -endif - ifneq (,$(filter mpu_stack_guard,$(USEMODULE))) FEATURES_REQUIRED += cortexm_mpu endif @@ -33,844 +29,20 @@ ifneq (,$(filter mpu_noexec_ram,$(USEMODULE))) FEATURES_REQUIRED += cortexm_mpu endif -ifneq (,$(filter auto_init_gnrc_netif,$(USEMODULE))) - USEMODULE += gnrc_netif_init_devs -endif - -ifneq (,$(filter auto_init_saul,$(USEMODULE))) - USEMODULE += saul_init_devs -endif - -ifneq (,$(filter base64url,$(USEMODULE))) - USEMODULE += base64 -endif - -ifneq (,$(filter csma_sender,$(USEMODULE))) - USEMODULE += random - USEMODULE += xtimer -endif - -ifneq (,$(filter dhcpv6_%,$(USEMODULE))) - USEMODULE += dhcpv6 -endif - -ifneq (,$(filter dhcpv6_client,$(USEMODULE))) - USEMODULE += event - USEMODULE += random - USEMODULE += xtimer -endif - -ifneq (,$(filter gnrc_mac,$(USEMODULE))) - USEMODULE += gnrc_priority_pktqueue - USEMODULE += csma_sender - USEMODULE += evtimer - ifneq (,$(filter gnrc_netif,$(USEMODULE))) - USEMODULE += gnrc_netif_mac - endif -endif - -ifneq (,$(filter gnrc_gomach,$(USEMODULE))) - USEMODULE += gnrc_netif - USEMODULE += gnrc_nettype_gomach - USEMODULE += random - USEMODULE += xtimer - USEMODULE += gnrc_mac - FEATURES_REQUIRED += periph_rtt -endif - -ifneq (,$(filter gnrc_lorawan,$(USEMODULE))) - USEMODULE += xtimer - USEMODULE += random - USEMODULE += hashes - USEMODULE += crypto_aes - USEMODULE += netdev_layer - USEMODULE += gnrc_nettype_lorawan -endif - -ifneq (,$(filter sntp,$(USEMODULE))) - USEMODULE += sock_udp - USEMODULE += xtimer -endif - -ifneq (,$(filter gnrc_netdev_default,$(USEMODULE))) - USEMODULE += netdev_default - USEMODULE += gnrc_netif -endif - -ifneq (,$(filter netdev_ieee802154,$(USEMODULE))) - USEMODULE += ieee802154 - USEMODULE += random -endif - -ifneq (,$(filter netdev_ieee802154_submac,$(USEMODULE))) - USEMODULE += ieee802154_radio_hal - USEMODULE += ieee802154_submac -endif - -ifneq (,$(filter gnrc_dhcpv6_%, $(USEMODULE))) - USEMODULE += gnrc_dhcpv6 -endif - -ifneq (,$(filter gnrc_dhcpv6_client,$(USEMODULE))) - USEMODULE += dhcpv6_client - USEMODULE += gnrc_ipv6_nib - USEMODULE += gnrc_netif - USEMODULE += gnrc_sock_udp -endif - -ifneq (,$(filter gnrc_dhcpv6_client_6lbr,$(USEMODULE))) - USEMODULE += gnrc_dhcpv6_client -endif - -ifneq (,$(filter gnrc_uhcpc,$(USEMODULE))) - DEFAULT_MODULE += auto_init_gnrc_uhcpc - USEMODULE += uhcpc - USEMODULE += gnrc_sock_udp - USEMODULE += fmt -endif - -ifneq (,$(filter uhcpc,$(USEMODULE))) - USEMODULE += posix_inet -endif - -ifneq (,$(filter gnrc_%,$(filter-out gnrc_netapi gnrc_netreg gnrc_netif% gnrc_pkt%,$(USEMODULE)))) - USEMODULE += gnrc -endif - -ifneq (,$(filter gnrc_sock_%,$(USEMODULE))) - USEMODULE += gnrc_sock -endif - -ifneq (,$(filter gnrc_sock_async,$(USEMODULE))) - USEMODULE += gnrc_netapi_callbacks -endif - -ifneq (,$(filter gnrc_sock_udp,$(USEMODULE))) - USEMODULE += gnrc_udp - USEMODULE += random # to generate random ports -endif - -ifneq (,$(filter gnrc_sock,$(USEMODULE))) - USEMODULE += gnrc_netapi_mbox - USEMODULE += sock -endif - -ifneq (,$(filter gnrc_netapi_mbox,$(USEMODULE))) - USEMODULE += core_mbox -endif - -ifneq (,$(filter netdev_tap,$(USEMODULE))) - USEMODULE += netif - USEMODULE += netdev_eth - USEMODULE += iolist -endif - -ifneq (,$(filter gnrc_rpl_p2p,$(USEMODULE))) - USEMODULE += gnrc_rpl -endif - -ifneq (,$(filter gnrc_rpl,$(USEMODULE))) - USEMODULE += gnrc_icmpv6 - USEMODULE += gnrc_ipv6_nib - USEMODULE += trickle - USEMODULE += xtimer - USEMODULE += evtimer -endif - -ifneq (,$(filter trickle,$(USEMODULE))) - USEMODULE += random - USEMODULE += xtimer -endif - -ifneq (,$(filter eui_provider,$(USEMODULE))) - USEMODULE += luid -endif - -ifneq (,$(filter gnrc_netif,$(USEMODULE))) - USEMODULE += netif - USEMODULE += l2util - USEMODULE += fmt - ifneq (,$(filter netdev_ieee802154_submac,$(USEMODULE))) - USEMODULE += gnrc_netif_pktq - endif - ifneq (,$(filter netdev_ieee802154,$(USEMODULE))) - USEMODULE += gnrc_netif_ieee802154 - endif - ifneq (,$(filter netdev_eth,$(USEMODULE))) - USEMODULE += gnrc_netif_ethernet - endif - ifneq (,$(filter gnrc_lorawan,$(USEMODULE))) - USEMODULE += gnrc_netif_lorawan - endif -endif - -ifneq (,$(filter gnrc_netif_bus,$(USEMODULE))) - USEMODULE += core_msg_bus -endif - -ifneq (,$(filter gnrc_netif_events,$(USEMODULE))) - USEMODULE += core_thread_flags - USEMODULE += event -endif - -ifneq (,$(filter ieee802154 nrfmin esp_now cc110x gnrc_sixloenc,$(USEMODULE))) - ifneq (,$(filter gnrc_ipv6, $(USEMODULE))) - USEMODULE += gnrc_sixlowpan - endif - ifneq (,$(filter gnrc_ipv6_default, $(USEMODULE))) - USEMODULE += gnrc_sixlowpan_default - endif - ifneq (,$(filter gnrc_ipv6_router_default, $(USEMODULE))) - USEMODULE += gnrc_sixlowpan_router_default - endif - ifneq (,$(filter lwip%, $(USEMODULE))) - USEMODULE += lwip_sixlowpan - endif -endif - -ifneq (,$(filter gnrc_sixlowpan_default,$(USEMODULE))) - USEMODULE += gnrc_ipv6_nib_6ln - USEMODULE += gnrc_sixlowpan - USEMODULE += gnrc_sixlowpan_frag - USEMODULE += gnrc_sixlowpan_iphc -endif - -ifneq (,$(filter gnrc_sixlowpan_router_default,$(USEMODULE))) - USEMODULE += gnrc_ipv6_nib_6lr - USEMODULE += gnrc_sixlowpan_frag - USEMODULE += gnrc_sixlowpan_iphc -endif - -ifneq (,$(filter gnrc_sixlowpan_border_router_default,$(USEMODULE))) - USEMODULE += gnrc_ipv6_nib_6lbr - USEMODULE += gnrc_ipv6_router_default - USEMODULE += gnrc_sixlowpan_frag - USEMODULE += gnrc_sixlowpan_iphc -endif - -ifneq (,$(filter gnrc_sixlowpan_frag,$(USEMODULE))) - USEMODULE += gnrc_sixlowpan - USEMODULE += gnrc_sixlowpan_frag_fb - USEMODULE += gnrc_sixlowpan_frag_rb -endif - -ifneq (,$(filter gnrc_sixlowpan_frag_fb,$(USEMODULE))) - USEMODULE += core_msg -endif - -ifneq (,$(filter gnrc_sixlowpan_frag_rb,$(USEMODULE))) - USEMODULE += xtimer -endif - -ifneq (,$(filter gnrc_sixlowpan_frag_vrb,$(USEMODULE))) - USEMODULE += xtimer - USEMODULE += gnrc_sixlowpan_frag_fb -endif - -ifneq (,$(filter gnrc_sixlowpan_iphc,$(USEMODULE))) - USEMODULE += gnrc_ipv6 - USEMODULE += gnrc_sixlowpan - USEMODULE += gnrc_sixlowpan_ctx - USEMODULE += gnrc_sixlowpan_iphc_nhc -endif - -ifneq (,$(filter gnrc_sixlowpan,$(USEMODULE))) - DEFAULT_MODULE += auto_init_gnrc_sixlowpan - USEMODULE += gnrc_nettype_sixlowpan - USEMODULE += sixlowpan - ifneq (,$(filter gnrc_netif,$(USEMODULE))) - USEMODULE += gnrc_netif_6lo - endif -endif - -ifneq (,$(filter gnrc_sixlowpan_ctx,$(USEMODULE))) - USEMODULE += ipv6_addr - USEMODULE += xtimer -endif - -ifneq (,$(filter gnrc_ipv6_default,$(USEMODULE))) - USEMODULE += gnrc_ipv6 - USEMODULE += gnrc_icmpv6 -endif - -ifneq (,$(filter gnrc_ipv6_router_default,$(USEMODULE))) - USEMODULE += gnrc_ipv6_router - USEMODULE += gnrc_icmpv6 -endif - -ifneq (,$(filter gnrc_ndp,$(USEMODULE))) - USEMODULE += gnrc_icmpv6 - USEMODULE += gnrc_ipv6_hdr - USEMODULE += gnrc_netif -endif - -ifneq (,$(filter gnrc_icmpv6_echo,$(USEMODULE))) - USEMODULE += gnrc_icmpv6 - USEMODULE += gnrc_ipv6_hdr - USEMODULE += gnrc_netif_hdr -endif - -ifneq (,$(filter gnrc_icmpv6_error,$(USEMODULE))) - USEMODULE += gnrc_icmpv6 - USEMODULE += gnrc_ipv6_hdr - USEMODULE += gnrc_netif_hdr -endif - -ifneq (,$(filter gnrc_icmpv6,$(USEMODULE))) - USEMODULE += inet_csum - USEMODULE += ipv6_hdr - USEMODULE += gnrc_nettype_icmpv6 - USEMODULE += gnrc_nettype_ipv6 - USEMODULE += icmpv6 -endif - -ifneq (,$(filter gnrc_rpl_srh,$(USEMODULE))) - USEMODULE += gnrc_ipv6_ext_rh -endif - -ifneq (,$(filter gnrc_ipv6_ext_frag,$(USEMODULE))) - USEMODULE += gnrc_ipv6_ext - USEMODULE += xtimer -endif - -ifneq (,$(filter gnrc_ipv6_ext_opt,$(USEMODULE))) - USEMODULE += gnrc_ipv6_ext -endif - -ifneq (,$(filter gnrc_ipv6_ext_rh,$(USEMODULE))) - USEMODULE += gnrc_ipv6_ext -endif - -ifneq (,$(filter gnrc_ipv6_ext,$(USEMODULE))) - USEMODULE += gnrc_nettype_ipv6 - USEMODULE += gnrc_nettype_ipv6_ext -endif - -ifneq (,$(filter gnrc_ipv6_whitelist,$(USEMODULE))) - USEMODULE += ipv6_addr -endif - -ifneq (,$(filter gnrc_ipv6_blacklist,$(USEMODULE))) - USEMODULE += ipv6_addr -endif - -ifneq (,$(filter gnrc_ipv6_router,$(USEMODULE))) - USEMODULE += gnrc_ipv6 - USEMODULE += gnrc_ipv6_nib_router -endif - -ifneq (,$(filter gnrc_ipv6,$(USEMODULE))) - DEFAULT_MODULE += auto_init_gnrc_ipv6 - USEMODULE += inet_csum - USEMODULE += ipv6_addr - USEMODULE += gnrc_ipv6_hdr - USEMODULE += gnrc_ipv6_nib - USEMODULE += gnrc_netif - USEMODULE += gnrc_netif_ipv6 - USEMODULE += gnrc_nettype_ipv6 -endif - -ifneq (,$(filter gnrc_ipv6_hdr,$(USEMODULE))) - USEMODULE += ipv6_hdr - USEMODULE += gnrc_pktbuf -endif - -ifneq (,$(filter sixlowpan,$(USEMODULE))) - USEMODULE += ipv6_hdr -endif - -ifneq (,$(filter ipv6_hdr,$(USEMODULE))) - USEMODULE += inet_csum - USEMODULE += ipv6_addr -endif - -ifneq (,$(filter gnrc_ipv6_nib_6lbr,$(USEMODULE))) - USEMODULE += gnrc_ipv6_nib_6lr -endif - -ifneq (,$(filter gnrc_ipv6_nib_6lr,$(USEMODULE))) - USEMODULE += gnrc_ipv6_nib_6ln - USEMODULE += gnrc_ipv6_nib_router -endif - -ifneq (,$(filter gnrc_ipv6_nib_6ln,$(USEMODULE))) - USEMODULE += gnrc_ipv6_nib - USEMODULE += gnrc_sixlowpan_nd -endif - -ifneq (,$(filter gnrc_ipv6_nib_dns,$(USEMODULE))) - USEMODULE += gnrc_ipv6_nib -endif - -ifneq (,$(filter gnrc_ipv6_nib_router,$(USEMODULE))) - USEMODULE += gnrc_ipv6_nib -endif - -ifneq (,$(filter gnrc_ipv6_nib,$(USEMODULE))) - DEFAULT_MODULE += auto_init_gnrc_ipv6_nib - USEMODULE += evtimer - USEMODULE += gnrc_ndp - USEMODULE += gnrc_netif - USEMODULE += gnrc_netif_ipv6 - USEMODULE += ipv6_addr - USEMODULE += random -endif - -ifneq (,$(filter gnrc_udp,$(USEMODULE))) - DEFAULT_MODULE += auto_init_gnrc_udp - USEMODULE += gnrc_nettype_udp - USEMODULE += inet_csum - USEMODULE += udp -endif - -ifneq (,$(filter gnrc_tcp,$(USEMODULE))) - DEFAULT_MODULE += auto_init_gnrc_tcp - USEMODULE += gnrc_nettype_tcp - USEMODULE += inet_csum - USEMODULE += random - USEMODULE += tcp - USEMODULE += evtimer_mbox -endif - -ifneq (,$(filter gnrc_pktdump,$(USEMODULE))) - DEFAULT_MODULE += auto_init_gnrc_pktdump - USEMODULE += gnrc_pktbuf - USEMODULE += od -endif - -ifneq (,$(filter ieee802154_submac,$(USEMODULE))) - USEMODULE += luid - USEMODULE += xtimer -endif - -ifneq (,$(filter od,$(USEMODULE))) - USEMODULE += fmt -endif - -ifneq (,$(filter od_string,$(USEMODULE))) - USEMODULE += od -endif - -ifneq (,$(filter newlib_gnu_source,$(USEMODULE))) - USEMODULE += newlib -endif - -ifneq (,$(filter newlib_nano,$(USEMODULE))) - USEMODULE += 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 -endif - -ifneq (,$(filter posix_select,$(USEMODULE))) - ifneq (,$(filter posix_sockets,$(USEMODULE))) - USEMODULE += sock_async - endif - USEMODULE += core_thread_flags - USEMODULE += posix_headers - USEMODULE += xtimer -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 - USEMODULE += xtimer -endif - -ifneq (,$(filter shell,$(USEMODULE))) - USEMODULE += stdin -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 += xtimer -endif - -ifneq (,$(filter shell_commands,$(USEMODULE))) - ifneq (,$(filter fib,$(USEMODULE))) - USEMODULE += posix_inet - endif - ifneq (,$(filter nimble_netif,$(USEMODULE))) - USEMODULE += nimble_scanner - USEMODULE += nimble_scanlist - USEMODULE += fmt - endif -endif - -ifneq (,$(filter posix_semaphore,$(USEMODULE))) - USEMODULE += sema - USEMODULE += xtimer - USEMODULE += posix_headers -endif - -ifneq (,$(filter posix_time,$(USEMODULE))) - USEMODULE += xtimer - USEMODULE += posix_headers -endif - -ifneq (,$(filter posix_inet,$(USEMODULE))) - USEMODULE += posix_headers -endif - -ifneq (,$(filter lwip_sixlowpan,$(USEMODULE))) - USEMODULE += lwip_ipv6_autoconfig - USEMODULE += l2util -endif - -ifneq (,$(filter lwip_ipv6_autoconfig lwip_ipv6_mld,$(USEMODULE))) - USEMODULE += lwip_ipv6 -endif - -ifneq (,$(filter lwip_ipv6,$(USEMODULE))) - USEMODULE += random -endif - -ifneq (,$(filter lwip_udplite,$(USEMODULE))) - USEMODULE += lwip_udp -endif - -ifneq (,$(filter lwip_sock_%,$(USEMODULE))) - USEMODULE += lwip_sock -endif - -ifneq (,$(filter lwip_sock_ip,$(USEMODULE))) - USEMODULE += lwip_raw -endif - -ifneq (,$(filter lwip_sock_tcp,$(USEMODULE))) - USEMODULE += lwip_tcp -endif - -ifneq (,$(filter lwip_sock_udp,$(USEMODULE))) - USEMODULE += lwip_udp -endif - ifneq (,$(filter lwip_%,$(USEMODULE))) USEPKG += lwip - USEMODULE += core_mbox - USEMODULE += lwip_api - USEMODULE += lwip_contrib - USEMODULE += lwip_core - USEMODULE += lwip_netif - ifeq (,$(filter lwip_ipv4 lwip_ipv6,$(USEMODULE))) - USEMODULE += lwip_ipv4 - endif - ifeq (,$(filter lwip_tcp lwip_udp lwip_udplite,$(USEMODULE))) - USEMODULE += lwip_raw - endif - ifneq (,$(filter netdev_eth,$(USEMODULE))) - USEMODULE += lwip_ethernet - endif endif -ifneq (,$(filter lwip_ppp,$(USEMODULE))) - USEMODULE += lwip_polarssl -endif - -ifneq (,$(filter lwip_contrib,$(USEMODULE))) - USEMODULE += sema - USEMODULE += xtimer -endif - -ifneq (,$(filter lwip_dhcp_auto,$(USEMODULE))) - USEMODULE += lwip_dhcp -endif - -ifneq (,$(filter sema,$(USEMODULE))) - USEMODULE += xtimer -endif - - ifneq (,$(filter libfixmath-unittests,$(USEMODULE))) USEPKG += libfixmath USEMODULE += libfixmath endif -ifneq (,$(filter luid,$(USEMODULE))) - FEATURES_OPTIONAL += periph_cpuid -endif - -ifneq (,$(filter fib,$(USEMODULE))) - USEMODULE += universal_address - USEMODULE += xtimer - USEMODULE += posix_headers -endif - -# if any log_* is used, also use LOG pseudomodule -ifneq (,$(filter log_%,$(USEMODULE))) - USEMODULE += log -endif - -ifneq (,$(filter cpp11-compat,$(USEMODULE))) - USEMODULE += xtimer - USEMODULE += timex - FEATURES_REQUIRED += cpp - FEATURES_REQUIRED += libstdcpp -endif - -ifneq (,$(filter fuzzing,$(USEMODULE))) - USEMODULE += netdev_test - USEMODULE += gnrc_netif - USEMODULE += gnrc_pktbuf_malloc -endif - -ifneq (,$(filter gnrc,$(USEMODULE))) - USEMODULE += gnrc_netapi - USEMODULE += gnrc_netreg - USEMODULE += gnrc_netif - USEMODULE += gnrc_netif_hdr - USEMODULE += gnrc_pktbuf - ifneq (,$(filter sock_async, $(USEMODULE))) - USEMODULE += gnrc_sock_async - endif - ifneq (,$(filter sock_ip, $(USEMODULE))) - USEMODULE += gnrc_sock_ip - endif - ifneq (,$(filter sock_udp, $(USEMODULE))) - USEMODULE += gnrc_sock_udp - endif -endif - -ifneq (,$(filter gnrc_pktbuf, $(USEMODULE))) - ifeq (,$(filter gnrc_pktbuf_%, $(USEMODULE))) - USEMODULE += gnrc_pktbuf_static - endif - ifeq (gnrc_pktbuf_cmd,$(filter gnrc_pktbuf_%, $(USEMODULE))) - USEMODULE += gnrc_pktbuf_static - endif - DEFAULT_MODULE += auto_init_gnrc_pktbuf - USEMODULE += gnrc_pkt -endif - -ifneq (,$(filter gnrc_pktbuf_%, $(USEMODULE))) - USEMODULE += gnrc_pktbuf # make MODULE_GNRC_PKTBUF macro available for all implementations -endif - -ifneq (,$(filter gnrc_netif_%,$(USEMODULE))) - USEMODULE += gnrc_netif -endif - -ifneq (,$(filter gnrc_netif_pktq,$(USEMODULE))) - USEMODULE += xtimer -endif - -ifneq (,$(filter netstats_%, $(USEMODULE))) - USEMODULE += netstats -endif - -ifneq (,$(filter gnrc_lwmac,$(USEMODULE))) - USEMODULE += gnrc_netif - USEMODULE += gnrc_nettype_lwmac - USEMODULE += gnrc_mac - FEATURES_REQUIRED += periph_rtt -endif - -ifneq (,$(filter pthread,$(USEMODULE))) - USEMODULE += xtimer - USEMODULE += timex -endif - -ifneq (,$(filter schedstatistics,$(USEMODULE))) - USEMODULE += xtimer - USEMODULE += sched_cb -endif - -ifneq (,$(filter arduino,$(USEMODULE))) - FEATURES_REQUIRED += arduino - FEATURES_OPTIONAL += arduino_pwm - FEATURES_OPTIONAL += periph_adc - FEATURES_REQUIRED += periph_gpio - USEMODULE += xtimer -endif - -ifneq (,$(filter arduino_pwm,$(FEATURES_USED))) - FEATURES_REQUIRED += periph_pwm -endif - -ifneq (,$(filter saul,$(USEMODULE))) - USEMODULE += phydat -endif - -ifneq (,$(filter saul_reg,$(USEMODULE))) - USEMODULE += saul -endif - -ifneq (,$(filter saul_default,$(USEMODULE))) - DEFAULT_MODULE += auto_init_saul - USEMODULE += saul - USEMODULE += saul_reg -endif - -ifneq (,$(filter saul_adc,$(USEMODULE))) - FEATURES_REQUIRED += periph_adc -endif - -ifneq (,$(filter saul_gpio,$(USEMODULE))) - FEATURES_REQUIRED += periph_gpio -endif - -ifneq (,$(filter saul,$(USEMODULE))) - USEMODULE += phydat -endif - -ifneq (,$(filter saul_nrf_temperature,$(USEMODULE))) - FEATURES_REQUIRED += periph_temperature -endif - -ifneq (,$(filter phydat,$(USEMODULE))) - USEMODULE += fmt -endif - -ifneq (,$(filter evtimer_mbox,$(USEMODULE))) - USEMODULE += evtimer - USEMODULE += core_mbox -endif - -ifneq (,$(filter can_linux,$(USEMODULE))) - LINKFLAGS += -lsocketcan -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 += xtimer - USEMODULE += gnrc_pktbuf -endif - -ifneq (,$(filter conn_can,$(USEMODULE))) - USEMODULE += can - USEMODULE += can_mbox - USEMODULE += xtimer -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 - # select default prng + # select default prng if no prng is selected ifeq (,$(filter prng_%,$(USEMODULE))) USEMODULE += prng_tinymt32 endif - - ifneq (,$(filter prng_fortuna,$(USEMODULE))) - USEMODULE += fortuna - USEMODULE += hashes - USEMODULE += crypto - USEMODULE += xtimer - 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 asymcute,$(USEMODULE))) - USEMODULE += sock_udp - USEMODULE += sock_util - USEMODULE += random - USEMODULE += event_timeout - USEMODULE += event_callback -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,$(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_dns,$(USEMODULE))) - USEMODULE += sock_udp - USEMODULE += sock_util - USEMODULE += posix_headers -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,$(USEMODULE))) - USEMODULE += xtimer -endif - -ifneq (,$(filter event,$(USEMODULE))) - USEMODULE += core_thread_flags endif ifneq (,$(filter spiffs,$(USEMODULE))) @@ -894,226 +66,23 @@ ifneq (,$(filter littlefs2,$(USEMODULE))) USEMODULE += mtd endif -ifneq (,$(filter l2filter_%,$(USEMODULE))) - USEMODULE += l2filter -endif - -ifneq (,$(filter gcoap,$(USEMODULE))) - USEMODULE += nanocoap - USEMODULE += sock_async - USEMODULE += sock_async_event - USEMODULE += sock_udp - USEMODULE += sock_util - USEMODULE += event_callback - USEMODULE += event_timeout -endif - -ifneq (,$(filter luid,$(USEMODULE))) - FEATURES_OPTIONAL += periph_cpuid -endif - -ifneq (,$(filter nanocoap_%,$(USEMODULE))) - USEMODULE += nanocoap -endif - ifneq (,$(filter fatfs_vfs,$(USEMODULE))) USEPKG += fatfs USEMODULE += vfs endif -ifneq (,$(filter benchmark,$(USEMODULE))) - USEMODULE += xtimer -endif - -ifneq (,$(filter skald_%,$(USEMODULE))) - USEMODULE += skald -endif - -ifneq (,$(filter skald,$(USEMODULE))) - FEATURES_REQUIRED += radio_nrfble - USEMODULE += nrfble - USEMODULE += xtimer - USEMODULE += random -endif - -ifneq (,$(filter bluetil_addr,$(USEMODULE))) - USEMODULE += fmt -endif - ifneq (,$(filter nimble_%,$(USEMODULE))) USEPKG += nimble 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 shell_commands,$(USEMODULE))) - USEMODULE += sock_util - endif -endif - -ifneq (,$(filter cord_epsim,$(USEMODULE))) - USEMODULE += cord_common -endif - -ifneq (,$(filter cord_ep_standalone,$(USEMODULE))) - USEMODULE += cord_ep - USEMODULE += xtimer -endif - -ifneq (,$(filter cord_lc,$(USEMODULE))) - USEMODULE += clif -endif - ifneq (,$(filter tlsf-malloc,$(USEMODULE))) USEPKG += tlsf endif -ifneq (,$(filter usbus,$(USEMODULE))) - DEFAULT_MODULE += auto_init_usbus - USEMODULE += core_thread_flags - USEMODULE += event - 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 += netdev_eth - USEMODULE += luid -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_hdr, $(USEMODULE))) - USEMODULE += checksum - USEMODULE += riotboot -endif - -ifneq (,$(filter irq_handler,$(USEMODULE))) - USEMODULE += event -endif - ifneq (,$(filter tinydtls_sock_dtls, $(USEMODULE))) USEPKG += tinydtls endif -ifneq (,$(filter sock_dtls, $(USEMODULE))) - USEMODULE += credman - USEMODULE += sock_udp -endif - -ifneq (,$(filter suit,$(USEMODULE))) - USEPKG += nanocbor - USEPKG += libcose - USEMODULE += libcose_crypt_c25519 - USEMODULE += uuid - - # tests/suit_manifest has some mock implementations, - # only add the non-mock dependencies if not building that test. - ifeq (,$(filter suit_transport_mock,$(USEMODULE))) - # SUIT depends on riotboot support and some extra riotboot modules - FEATURES_REQUIRED += riotboot - USEMODULE += riotboot_slot - USEMODULE += riotboot_flashwrite - USEMODULE += riotboot_flashwrite_verify_sha256 - endif -endif - -ifneq (,$(filter suit_transport_%, $(USEMODULE))) - USEMODULE += suit_transport -endif - -ifneq (,$(filter suit_transport_coap, $(USEMODULE))) - USEMODULE += nanocoap -endif - -ifneq (,$(filter suit_storage_%, $(USEMODULE))) - USEMODULE += suit_storage -endif - -ifneq (,$(filter suit_%,$(USEMODULE))) - USEMODULE += suit -endif - -# Enable periph_uart when periph_uart_nonblocking is enabled -ifneq (,$(filter periph_uart_nonblocking,$(USEMODULE))) - FEATURES_REQUIRED += periph_uart -endif - -# include ztimer dependencies -ifneq (,$(filter ztimer% %ztimer,$(USEMODULE))) - include $(RIOTBASE)/sys/ztimer/Makefile.dep -endif - -# handle evtimer's deps. Needs to be done *after* ztimer -ifneq (,$(filter evtimer,$(USEMODULE))) - ifeq (,$(filter evtimer_on_ztimer,$(USEMODULE))) - USEMODULE += xtimer - endif -endif - -# handle xtimer's deps. Needs to be done *after* ztimer -ifneq (,$(filter xtimer,$(USEMODULE))) - ifeq (,$(filter ztimer_xtimer_compat,$(USEMODULE))) - # xtimer is used, ztimer xtimer wrapper is not - DEFAULT_MODULE += auto_init_xtimer - USEMODULE += div - ifeq (,$(filter xtimer_on_ztimer,$(USEMODULE))) - # ztimer is not used, so use *periph_timer as low-level timer*. - FEATURES_REQUIRED += periph_timer - else - # will use *ztimer_usec as low-level timer* - endif - else - # ztimer_xtimer_compat is used, all of *xtimer's API will be mapped on ztimer.* - endif -endif - -# Enable periph_gpio when periph_gpio_irq is enabled -ifneq (,$(filter periph_gpio_irq,$(USEMODULE))) - FEATURES_REQUIRED += periph_gpio -endif - -ifneq (,$(filter periph_timer_periodic,$(USEMODULE))) - FEATURES_REQUIRED += periph_timer -endif - -ifneq (,$(filter devfs_hwrng,$(USEMODULE))) - FEATURES_REQUIRED += periph_hwrng -endif - -ifneq (,$(filter devfs_random,$(USEMODULE))) - USEMODULE += random -endif - # always select gpio (until explicit dependencies are sorted out) FEATURES_OPTIONAL += periph_gpio @@ -1134,10 +103,6 @@ ifneq (,$(filter libstdcpp,$(FEATURES_USED))) FEATURES_REQUIRED += cpp endif -ifneq (,$(filter ecc_%,$(USEMODULE))) - USEMODULE += ecc -endif - ifneq (,$(filter test_utils_interactive_sync,$(USEMODULE))) ifneq (,$(filter shell,$(USEMODULE))) DEFAULT_MODULE += test_utils_interactive_sync_shell diff --git a/cpu/native/Makefile.dep b/cpu/native/Makefile.dep index 19ddb2ea39..2d13078cba 100644 --- a/cpu/native/Makefile.dep +++ b/cpu/native/Makefile.dep @@ -21,6 +21,10 @@ ifneq (,$(filter periph_rtc,$(USEMODULE))) USEMODULE += xtimer endif +ifneq (,$(filter can_linux,$(USEMODULE))) + LINKFLAGS += -lsocketcan +endif + USEMODULE += periph # UART is needed by startup.c diff --git a/drivers/Makefile.dep b/drivers/Makefile.dep index 5000976fb3..692c25348b 100644 --- a/drivers/Makefile.dep +++ b/drivers/Makefile.dep @@ -141,6 +141,36 @@ ifneq (,$(filter ws281x_%,$(USEMODULE))) USEMODULE += ws281x endif +ifneq (,$(filter saul_adc,$(USEMODULE))) + FEATURES_REQUIRED += periph_adc +endif + +ifneq (,$(filter saul_gpio,$(USEMODULE))) + FEATURES_REQUIRED += periph_gpio +endif + +ifneq (,$(filter saul,$(USEMODULE))) + USEMODULE += phydat +endif + +ifneq (,$(filter saul_nrf_temperature,$(USEMODULE))) + FEATURES_REQUIRED += periph_temperature +endif + +# Enable periph_uart when periph_uart_nonblocking is enabled +ifneq (,$(filter periph_uart_nonblocking,$(USEMODULE))) + FEATURES_REQUIRED += periph_uart +endif + +# Enable periph_gpio when periph_gpio_irq is enabled +ifneq (,$(filter periph_gpio_irq,$(USEMODULE))) + FEATURES_REQUIRED += periph_gpio +endif + +ifneq (,$(filter periph_timer_periodic,$(USEMODULE))) + FEATURES_REQUIRED += periph_timer +endif + ifneq (,$(filter netdev_%,$(USEMODULE))) USEMODULE += netdev # Don't register netdevs if there is only a single one of them diff --git a/pkg/lwip/Makefile.dep b/pkg/lwip/Makefile.dep index 86a7a74aa4..62d932f3b6 100644 --- a/pkg/lwip/Makefile.dep +++ b/pkg/lwip/Makefile.dep @@ -22,3 +22,67 @@ ifneq (,$(filter stm32_eth,$(USEMODULE))) USEMODULE += stm32_eth_link_up endif endif + +ifneq (,$(filter lwip_ipv6_autoconfig lwip_ipv6_mld,$(USEMODULE))) + USEMODULE += lwip_ipv6 +endif + +ifneq (,$(filter lwip_ipv6,$(USEMODULE))) + USEMODULE += random +endif + +ifneq (,$(filter lwip_udplite,$(USEMODULE))) + USEMODULE += lwip_udp +endif + +ifneq (,$(filter lwip_sock_%,$(USEMODULE))) + USEMODULE += lwip_sock +endif + +ifneq (,$(filter lwip_sock_ip,$(USEMODULE))) + USEMODULE += lwip_raw +endif + +ifneq (,$(filter lwip_sock_tcp,$(USEMODULE))) + USEMODULE += lwip_tcp +endif + +ifneq (,$(filter lwip_sock_udp,$(USEMODULE))) + USEMODULE += lwip_udp +endif + +ifneq (,$(filter lwip_sixlowpan,$(USEMODULE))) + USEMODULE += lwip_ipv6_autoconfig + USEMODULE += l2util +endif + +ifneq (,$(filter lwip_%,$(USEMODULE))) + USEPKG += lwip + USEMODULE += core_mbox + USEMODULE += lwip_api + USEMODULE += lwip_contrib + USEMODULE += lwip_core + USEMODULE += lwip_netif + ifeq (,$(filter lwip_ipv4 lwip_ipv6,$(USEMODULE))) + USEMODULE += lwip_ipv4 + endif + ifeq (,$(filter lwip_tcp lwip_udp lwip_udplite,$(USEMODULE))) + USEMODULE += lwip_raw + endif + ifneq (,$(filter netdev_eth,$(USEMODULE))) + USEMODULE += lwip_ethernet + endif +endif + +ifneq (,$(filter lwip_ppp,$(USEMODULE))) + USEMODULE += lwip_polarssl +endif + +ifneq (,$(filter lwip_contrib,$(USEMODULE))) + USEMODULE += sema + USEMODULE += xtimer +endif + +ifneq (,$(filter lwip_dhcp_auto,$(USEMODULE))) + USEMODULE += lwip_dhcp +endif diff --git a/sys/Makefile.dep b/sys/Makefile.dep index 3f7681c776..e2b0a90b22 100644 --- a/sys/Makefile.dep +++ b/sys/Makefile.dep @@ -7,6 +7,19 @@ ifneq (,$(filter arduino,$(USEMODULE))) USEMODULE += $(SKETCH_MODULE) endif + +ifneq (,$(filter arduino,$(USEMODULE))) + FEATURES_REQUIRED += arduino + FEATURES_OPTIONAL += arduino_pwm + FEATURES_OPTIONAL += periph_adc + FEATURES_REQUIRED += periph_gpio + USEMODULE += xtimer +endif + +ifneq (,$(filter arduino_pwm,$(FEATURES_USED))) + FEATURES_REQUIRED += periph_pwm +endif + ifneq (,$(filter eepreg,$(USEMODULE))) FEATURES_REQUIRED += periph_eeprom endif @@ -46,4 +59,928 @@ ifneq (,$(filter shell_commands,$(USEMODULE))) endif endif +ifneq (,$(filter ssp,$(USEMODULE))) + FEATURES_REQUIRED += ssp +endif + +ifneq (,$(filter base64url,$(USEMODULE))) + USEMODULE += base64 +endif + +ifneq (,$(filter auto_init_gnrc_netif,$(USEMODULE))) + USEMODULE += gnrc_netif_init_devs +endif + +ifneq (,$(filter auto_init_saul,$(USEMODULE))) + USEMODULE += saul_init_devs +endif + +ifneq (,$(filter csma_sender,$(USEMODULE))) + USEMODULE += random + USEMODULE += xtimer +endif + +ifneq (,$(filter dhcpv6_%,$(USEMODULE))) + USEMODULE += dhcpv6 +endif + +ifneq (,$(filter dhcpv6_client,$(USEMODULE))) + USEMODULE += event + USEMODULE += random + USEMODULE += xtimer +endif + +ifneq (,$(filter gnrc_mac,$(USEMODULE))) + USEMODULE += gnrc_priority_pktqueue + USEMODULE += csma_sender + USEMODULE += evtimer + ifneq (,$(filter gnrc_netif,$(USEMODULE))) + USEMODULE += gnrc_netif_mac + endif +endif + +ifneq (,$(filter gnrc_gomach,$(USEMODULE))) + USEMODULE += gnrc_netif + USEMODULE += gnrc_nettype_gomach + USEMODULE += random + USEMODULE += xtimer + USEMODULE += gnrc_mac + FEATURES_REQUIRED += periph_rtt +endif + +ifneq (,$(filter gnrc_lorawan,$(USEMODULE))) + USEMODULE += xtimer + USEMODULE += random + USEMODULE += hashes + USEMODULE += crypto_aes + USEMODULE += netdev_layer + USEMODULE += gnrc_nettype_lorawan +endif + +ifneq (,$(filter sntp,$(USEMODULE))) + USEMODULE += sock_udp + USEMODULE += xtimer +endif + +ifneq (,$(filter gnrc_netdev_default,$(USEMODULE))) + USEMODULE += netdev_default + USEMODULE += gnrc_netif +endif + +ifneq (,$(filter netdev_ieee802154,$(USEMODULE))) + USEMODULE += ieee802154 + USEMODULE += random +endif + +ifneq (,$(filter netdev_ieee802154_submac,$(USEMODULE))) + USEMODULE += ieee802154_radio_hal + USEMODULE += ieee802154_submac +endif + +ifneq (,$(filter gnrc_dhcpv6_%, $(USEMODULE))) + USEMODULE += gnrc_dhcpv6 +endif + +ifneq (,$(filter gnrc_dhcpv6_client,$(USEMODULE))) + USEMODULE += dhcpv6_client + USEMODULE += gnrc_ipv6_nib + USEMODULE += gnrc_netif + USEMODULE += gnrc_sock_udp +endif + +ifneq (,$(filter gnrc_dhcpv6_client_6lbr,$(USEMODULE))) + USEMODULE += gnrc_dhcpv6_client +endif + +ifneq (,$(filter gnrc_uhcpc,$(USEMODULE))) + DEFAULT_MODULE += auto_init_gnrc_uhcpc + USEMODULE += uhcpc + USEMODULE += gnrc_sock_udp + USEMODULE += fmt +endif + +ifneq (,$(filter uhcpc,$(USEMODULE))) + USEMODULE += posix_inet +endif + +ifneq (,$(filter gnrc_%,$(filter-out gnrc_netapi gnrc_netreg gnrc_netif% gnrc_pkt%,$(USEMODULE)))) + USEMODULE += gnrc +endif + +ifneq (,$(filter gnrc_sock_%,$(USEMODULE))) + USEMODULE += gnrc_sock +endif + +ifneq (,$(filter gnrc_sock_async,$(USEMODULE))) + USEMODULE += gnrc_netapi_callbacks +endif + +ifneq (,$(filter gnrc_sock_udp,$(USEMODULE))) + USEMODULE += gnrc_udp + USEMODULE += random # to generate random ports +endif + +ifneq (,$(filter gnrc_sock,$(USEMODULE))) + USEMODULE += gnrc_netapi_mbox + USEMODULE += sock +endif + +ifneq (,$(filter gnrc_netapi_mbox,$(USEMODULE))) + USEMODULE += core_mbox +endif + +ifneq (,$(filter netdev_tap,$(USEMODULE))) + USEMODULE += netif + USEMODULE += netdev_eth + USEMODULE += iolist +endif + +ifneq (,$(filter gnrc_rpl_p2p,$(USEMODULE))) + USEMODULE += gnrc_rpl +endif + +ifneq (,$(filter gnrc_rpl,$(USEMODULE))) + USEMODULE += gnrc_icmpv6 + USEMODULE += gnrc_ipv6_nib + USEMODULE += trickle + USEMODULE += xtimer + USEMODULE += evtimer +endif + +ifneq (,$(filter trickle,$(USEMODULE))) + USEMODULE += random + USEMODULE += xtimer +endif + +ifneq (,$(filter eui_provider,$(USEMODULE))) + USEMODULE += luid +endif + +ifneq (,$(filter gnrc_netif,$(USEMODULE))) + USEMODULE += netif + USEMODULE += l2util + USEMODULE += fmt + ifneq (,$(filter netdev_ieee802154_submac,$(USEMODULE))) + USEMODULE += gnrc_netif_pktq + endif + ifneq (,$(filter netdev_ieee802154,$(USEMODULE))) + USEMODULE += gnrc_netif_ieee802154 + endif + ifneq (,$(filter netdev_eth,$(USEMODULE))) + USEMODULE += gnrc_netif_ethernet + endif + ifneq (,$(filter gnrc_lorawan,$(USEMODULE))) + USEMODULE += gnrc_netif_lorawan + endif +endif + +ifneq (,$(filter gnrc_netif_bus,$(USEMODULE))) + USEMODULE += core_msg_bus +endif + +ifneq (,$(filter gnrc_netif_events,$(USEMODULE))) + USEMODULE += core_thread_flags + USEMODULE += event +endif + +ifneq (,$(filter ieee802154 nrfmin esp_now cc110x gnrc_sixloenc,$(USEMODULE))) + ifneq (,$(filter gnrc_ipv6, $(USEMODULE))) + USEMODULE += gnrc_sixlowpan + endif + ifneq (,$(filter gnrc_ipv6_default, $(USEMODULE))) + USEMODULE += gnrc_sixlowpan_default + endif + ifneq (,$(filter gnrc_ipv6_router_default, $(USEMODULE))) + USEMODULE += gnrc_sixlowpan_router_default + endif + ifneq (,$(filter lwip%, $(USEMODULE))) + USEMODULE += lwip_sixlowpan + endif +endif + +ifneq (,$(filter gnrc_sixlowpan_default,$(USEMODULE))) + USEMODULE += gnrc_ipv6_nib_6ln + USEMODULE += gnrc_sixlowpan + USEMODULE += gnrc_sixlowpan_frag + USEMODULE += gnrc_sixlowpan_iphc +endif + +ifneq (,$(filter gnrc_sixlowpan_router_default,$(USEMODULE))) + USEMODULE += gnrc_ipv6_nib_6lr + USEMODULE += gnrc_sixlowpan_frag + USEMODULE += gnrc_sixlowpan_iphc +endif + +ifneq (,$(filter gnrc_sixlowpan_border_router_default,$(USEMODULE))) + USEMODULE += gnrc_ipv6_nib_6lbr + USEMODULE += gnrc_ipv6_router_default + USEMODULE += gnrc_sixlowpan_frag + USEMODULE += gnrc_sixlowpan_iphc +endif + +ifneq (,$(filter gnrc_sixlowpan_frag,$(USEMODULE))) + USEMODULE += gnrc_sixlowpan + USEMODULE += gnrc_sixlowpan_frag_fb + USEMODULE += gnrc_sixlowpan_frag_rb +endif + +ifneq (,$(filter gnrc_sixlowpan_frag_fb,$(USEMODULE))) + USEMODULE += core_msg +endif + +ifneq (,$(filter gnrc_sixlowpan_frag_rb,$(USEMODULE))) + USEMODULE += xtimer +endif + +ifneq (,$(filter gnrc_sixlowpan_frag_vrb,$(USEMODULE))) + USEMODULE += xtimer + USEMODULE += gnrc_sixlowpan_frag_fb +endif + +ifneq (,$(filter gnrc_sixlowpan_iphc,$(USEMODULE))) + USEMODULE += gnrc_ipv6 + USEMODULE += gnrc_sixlowpan + USEMODULE += gnrc_sixlowpan_ctx + USEMODULE += gnrc_sixlowpan_iphc_nhc +endif + +ifneq (,$(filter gnrc_sixlowpan,$(USEMODULE))) + DEFAULT_MODULE += auto_init_gnrc_sixlowpan + USEMODULE += gnrc_nettype_sixlowpan + USEMODULE += sixlowpan + ifneq (,$(filter gnrc_netif,$(USEMODULE))) + USEMODULE += gnrc_netif_6lo + endif +endif + +ifneq (,$(filter gnrc_sixlowpan_ctx,$(USEMODULE))) + USEMODULE += ipv6_addr + USEMODULE += xtimer +endif + +ifneq (,$(filter gnrc_ipv6_default,$(USEMODULE))) + USEMODULE += gnrc_ipv6 + USEMODULE += gnrc_icmpv6 +endif + +ifneq (,$(filter gnrc_ipv6_router_default,$(USEMODULE))) + USEMODULE += gnrc_ipv6_router + USEMODULE += gnrc_icmpv6 +endif + +ifneq (,$(filter gnrc_ndp,$(USEMODULE))) + USEMODULE += gnrc_icmpv6 + USEMODULE += gnrc_ipv6_hdr + USEMODULE += gnrc_netif +endif + +ifneq (,$(filter gnrc_icmpv6_echo,$(USEMODULE))) + USEMODULE += gnrc_icmpv6 + USEMODULE += gnrc_ipv6_hdr + USEMODULE += gnrc_netif_hdr +endif + +ifneq (,$(filter gnrc_icmpv6_error,$(USEMODULE))) + USEMODULE += gnrc_icmpv6 + USEMODULE += gnrc_ipv6_hdr + USEMODULE += gnrc_netif_hdr +endif + +ifneq (,$(filter gnrc_icmpv6,$(USEMODULE))) + USEMODULE += inet_csum + USEMODULE += ipv6_hdr + USEMODULE += gnrc_nettype_icmpv6 + USEMODULE += gnrc_nettype_ipv6 + USEMODULE += icmpv6 +endif + +ifneq (,$(filter gnrc_rpl_srh,$(USEMODULE))) + USEMODULE += gnrc_ipv6_ext_rh +endif + +ifneq (,$(filter gnrc_ipv6_ext_frag,$(USEMODULE))) + USEMODULE += gnrc_ipv6_ext + USEMODULE += xtimer +endif + +ifneq (,$(filter gnrc_ipv6_ext_opt,$(USEMODULE))) + USEMODULE += gnrc_ipv6_ext +endif + +ifneq (,$(filter gnrc_ipv6_ext_rh,$(USEMODULE))) + USEMODULE += gnrc_ipv6_ext +endif + +ifneq (,$(filter gnrc_ipv6_ext,$(USEMODULE))) + USEMODULE += gnrc_nettype_ipv6 + USEMODULE += gnrc_nettype_ipv6_ext +endif + +ifneq (,$(filter gnrc_ipv6_whitelist,$(USEMODULE))) + USEMODULE += ipv6_addr +endif + +ifneq (,$(filter gnrc_ipv6_blacklist,$(USEMODULE))) + USEMODULE += ipv6_addr +endif + +ifneq (,$(filter gnrc_ipv6_router,$(USEMODULE))) + USEMODULE += gnrc_ipv6 + USEMODULE += gnrc_ipv6_nib_router +endif + +ifneq (,$(filter gnrc_ipv6,$(USEMODULE))) + DEFAULT_MODULE += auto_init_gnrc_ipv6 + USEMODULE += inet_csum + USEMODULE += ipv6_addr + USEMODULE += gnrc_ipv6_hdr + USEMODULE += gnrc_ipv6_nib + USEMODULE += gnrc_netif + USEMODULE += gnrc_netif_ipv6 + USEMODULE += gnrc_nettype_ipv6 +endif + +ifneq (,$(filter gnrc_ipv6_hdr,$(USEMODULE))) + USEMODULE += ipv6_hdr + USEMODULE += gnrc_pktbuf +endif + +ifneq (,$(filter sixlowpan,$(USEMODULE))) + USEMODULE += ipv6_hdr +endif + +ifneq (,$(filter ipv6_hdr,$(USEMODULE))) + USEMODULE += inet_csum + USEMODULE += ipv6_addr +endif + +ifneq (,$(filter gnrc_ipv6_nib_6lbr,$(USEMODULE))) + USEMODULE += gnrc_ipv6_nib_6lr +endif + +ifneq (,$(filter gnrc_ipv6_nib_6lr,$(USEMODULE))) + USEMODULE += gnrc_ipv6_nib_6ln + USEMODULE += gnrc_ipv6_nib_router +endif + +ifneq (,$(filter gnrc_ipv6_nib_6ln,$(USEMODULE))) + USEMODULE += gnrc_ipv6_nib + USEMODULE += gnrc_sixlowpan_nd +endif + +ifneq (,$(filter gnrc_ipv6_nib_dns,$(USEMODULE))) + USEMODULE += gnrc_ipv6_nib +endif + +ifneq (,$(filter gnrc_ipv6_nib_router,$(USEMODULE))) + USEMODULE += gnrc_ipv6_nib +endif + +ifneq (,$(filter gnrc_ipv6_nib,$(USEMODULE))) + DEFAULT_MODULE += auto_init_gnrc_ipv6_nib + USEMODULE += evtimer + USEMODULE += gnrc_ndp + USEMODULE += gnrc_netif + USEMODULE += gnrc_netif_ipv6 + USEMODULE += ipv6_addr + USEMODULE += random +endif + +ifneq (,$(filter gnrc_udp,$(USEMODULE))) + DEFAULT_MODULE += auto_init_gnrc_udp + USEMODULE += gnrc_nettype_udp + USEMODULE += inet_csum + USEMODULE += udp +endif + +ifneq (,$(filter gnrc_tcp,$(USEMODULE))) + DEFAULT_MODULE += auto_init_gnrc_tcp + USEMODULE += gnrc_nettype_tcp + USEMODULE += inet_csum + USEMODULE += random + USEMODULE += tcp + USEMODULE += evtimer_mbox +endif + +ifneq (,$(filter gnrc_pktdump,$(USEMODULE))) + DEFAULT_MODULE += auto_init_gnrc_pktdump + USEMODULE += gnrc_pktbuf + USEMODULE += od +endif + +ifneq (,$(filter ieee802154_submac,$(USEMODULE))) + USEMODULE += luid + USEMODULE += xtimer +endif + +ifneq (,$(filter od,$(USEMODULE))) + USEMODULE += fmt +endif + +ifneq (,$(filter od_string,$(USEMODULE))) + USEMODULE += od +endif + +ifneq (,$(filter newlib_gnu_source,$(USEMODULE))) + USEMODULE += newlib +endif + +ifneq (,$(filter newlib_nano,$(USEMODULE))) + USEMODULE += 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 +endif + +ifneq (,$(filter posix_select,$(USEMODULE))) + ifneq (,$(filter posix_sockets,$(USEMODULE))) + USEMODULE += sock_async + endif + USEMODULE += core_thread_flags + USEMODULE += posix_headers + USEMODULE += xtimer +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 + USEMODULE += xtimer +endif + +ifneq (,$(filter shell,$(USEMODULE))) + USEMODULE += stdin +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 += xtimer +endif + +ifneq (,$(filter shell_commands,$(USEMODULE))) + ifneq (,$(filter fib,$(USEMODULE))) + USEMODULE += posix_inet + endif + ifneq (,$(filter nimble_netif,$(USEMODULE))) + USEMODULE += nimble_scanner + USEMODULE += nimble_scanlist + USEMODULE += fmt + endif +endif + +ifneq (,$(filter posix_semaphore,$(USEMODULE))) + USEMODULE += sema + USEMODULE += xtimer + USEMODULE += posix_headers +endif + +ifneq (,$(filter posix_time,$(USEMODULE))) + USEMODULE += xtimer + USEMODULE += posix_headers +endif + +ifneq (,$(filter posix_inet,$(USEMODULE))) + USEMODULE += posix_headers +endif + +ifneq (,$(filter sema,$(USEMODULE))) + USEMODULE += xtimer +endif + +ifneq (,$(filter luid,$(USEMODULE))) + FEATURES_OPTIONAL += periph_cpuid +endif + +ifneq (,$(filter fib,$(USEMODULE))) + USEMODULE += universal_address + USEMODULE += xtimer + USEMODULE += posix_headers +endif + +# if any log_* is used, also use LOG pseudomodule +ifneq (,$(filter log_%,$(USEMODULE))) + USEMODULE += log +endif + +ifneq (,$(filter cpp11-compat,$(USEMODULE))) + USEMODULE += xtimer + USEMODULE += timex + FEATURES_REQUIRED += cpp + FEATURES_REQUIRED += libstdcpp +endif + +ifneq (,$(filter fuzzing,$(USEMODULE))) + USEMODULE += netdev_test + USEMODULE += gnrc_netif + USEMODULE += gnrc_pktbuf_malloc +endif + +ifneq (,$(filter gnrc,$(USEMODULE))) + USEMODULE += gnrc_netapi + USEMODULE += gnrc_netreg + USEMODULE += gnrc_netif + USEMODULE += gnrc_netif_hdr + USEMODULE += gnrc_pktbuf + ifneq (,$(filter sock_async, $(USEMODULE))) + USEMODULE += gnrc_sock_async + endif + ifneq (,$(filter sock_ip, $(USEMODULE))) + USEMODULE += gnrc_sock_ip + endif + ifneq (,$(filter sock_udp, $(USEMODULE))) + USEMODULE += gnrc_sock_udp + endif +endif + +ifneq (,$(filter gnrc_pktbuf, $(USEMODULE))) + ifeq (,$(filter gnrc_pktbuf_%, $(USEMODULE))) + USEMODULE += gnrc_pktbuf_static + endif + ifeq (gnrc_pktbuf_cmd,$(filter gnrc_pktbuf_%, $(USEMODULE))) + USEMODULE += gnrc_pktbuf_static + endif + DEFAULT_MODULE += auto_init_gnrc_pktbuf + USEMODULE += gnrc_pkt +endif + +ifneq (,$(filter gnrc_pktbuf_%, $(USEMODULE))) + USEMODULE += gnrc_pktbuf # make MODULE_GNRC_PKTBUF macro available for all implementations +endif + +ifneq (,$(filter gnrc_netif_%,$(USEMODULE))) + USEMODULE += gnrc_netif +endif + +ifneq (,$(filter gnrc_netif_pktq,$(USEMODULE))) + USEMODULE += xtimer +endif + +ifneq (,$(filter netstats_%, $(USEMODULE))) + USEMODULE += netstats +endif + +ifneq (,$(filter gnrc_lwmac,$(USEMODULE))) + USEMODULE += gnrc_netif + USEMODULE += gnrc_nettype_lwmac + USEMODULE += gnrc_mac + FEATURES_REQUIRED += periph_rtt +endif + +ifneq (,$(filter pthread,$(USEMODULE))) + USEMODULE += xtimer + USEMODULE += timex +endif + +ifneq (,$(filter schedstatistics,$(USEMODULE))) + USEMODULE += xtimer + USEMODULE += sched_cb +endif + +ifneq (,$(filter saul_reg,$(USEMODULE))) + USEMODULE += saul +endif + +ifneq (,$(filter saul_default,$(USEMODULE))) + DEFAULT_MODULE += auto_init_saul + USEMODULE += saul + USEMODULE += saul_reg +endif + +ifneq (,$(filter phydat,$(USEMODULE))) + USEMODULE += fmt +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 += xtimer + USEMODULE += gnrc_pktbuf +endif + +ifneq (,$(filter conn_can,$(USEMODULE))) + USEMODULE += can + USEMODULE += can_mbox + USEMODULE += xtimer +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 + USEMODULE += xtimer + 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 asymcute,$(USEMODULE))) + USEMODULE += sock_udp + USEMODULE += sock_util + USEMODULE += random + USEMODULE += event_timeout + USEMODULE += event_callback +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,$(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_dns,$(USEMODULE))) + USEMODULE += sock_udp + USEMODULE += sock_util + USEMODULE += posix_headers +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,$(USEMODULE))) + USEMODULE += xtimer +endif + +ifneq (,$(filter event,$(USEMODULE))) + USEMODULE += core_thread_flags +endif + +ifneq (,$(filter l2filter_%,$(USEMODULE))) + USEMODULE += l2filter +endif + +ifneq (,$(filter gcoap,$(USEMODULE))) + USEMODULE += nanocoap + USEMODULE += sock_async + USEMODULE += sock_async_event + USEMODULE += sock_udp + USEMODULE += sock_util + USEMODULE += event_callback + USEMODULE += event_timeout +endif + +ifneq (,$(filter luid,$(USEMODULE))) + FEATURES_OPTIONAL += periph_cpuid +endif + +ifneq (,$(filter nanocoap_%,$(USEMODULE))) + USEMODULE += nanocoap +endif + +ifneq (,$(filter benchmark,$(USEMODULE))) + USEMODULE += xtimer +endif + +ifneq (,$(filter skald_%,$(USEMODULE))) + USEMODULE += skald +endif + +ifneq (,$(filter skald,$(USEMODULE))) + FEATURES_REQUIRED += radio_nrfble + USEMODULE += nrfble + USEMODULE += xtimer + USEMODULE += random +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 shell_commands,$(USEMODULE))) + USEMODULE += sock_util + endif +endif + +ifneq (,$(filter cord_epsim,$(USEMODULE))) + USEMODULE += cord_common +endif + +ifneq (,$(filter cord_ep_standalone,$(USEMODULE))) + USEMODULE += cord_ep + USEMODULE += xtimer +endif + +ifneq (,$(filter cord_lc,$(USEMODULE))) + USEMODULE += clif +endif + +ifneq (,$(filter usbus,$(USEMODULE))) + DEFAULT_MODULE += auto_init_usbus + USEMODULE += core_thread_flags + USEMODULE += event + 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 += netdev_eth + USEMODULE += luid +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_hdr, $(USEMODULE))) + USEMODULE += checksum + USEMODULE += riotboot +endif + +ifneq (,$(filter irq_handler,$(USEMODULE))) + USEMODULE += event +endif + +ifneq (,$(filter sock_dtls, $(USEMODULE))) + USEMODULE += credman + USEMODULE += sock_udp +endif + +ifneq (,$(filter suit,$(USEMODULE))) + USEPKG += nanocbor + USEPKG += libcose + USEMODULE += libcose_crypt_c25519 + USEMODULE += uuid + + # tests/suit_manifest has some mock implementations, + # only add the non-mock dependencies if not building that test. + ifeq (,$(filter suit_transport_mock,$(USEMODULE))) + # SUIT depends on riotboot support and some extra riotboot modules + FEATURES_REQUIRED += riotboot + USEMODULE += riotboot_slot + USEMODULE += riotboot_flashwrite + USEMODULE += riotboot_flashwrite_verify_sha256 + endif +endif + +ifneq (,$(filter suit_transport_%, $(USEMODULE))) + USEMODULE += suit_transport +endif + +ifneq (,$(filter suit_transport_coap, $(USEMODULE))) + USEMODULE += nanocoap +endif + +ifneq (,$(filter suit_storage_%, $(USEMODULE))) + USEMODULE += suit_storage +endif + +ifneq (,$(filter suit_%,$(USEMODULE))) + USEMODULE += suit +endif + +# include ztimer dependencies +ifneq (,$(filter ztimer% %ztimer,$(USEMODULE))) + include $(RIOTBASE)/sys/ztimer/Makefile.dep +endif + +ifneq (,$(filter evtimer,$(USEMODULE))) + USEMODULE += xtimer +endif + +# handle xtimer's deps. Needs to be done *after* ztimer +ifneq (,$(filter xtimer,$(USEMODULE))) + ifeq (,$(filter ztimer_xtimer_compat,$(USEMODULE))) + # xtimer is used, ztimer xtimer wrapper is not + DEFAULT_MODULE += auto_init_xtimer + USEMODULE += div + ifeq (,$(filter xtimer_on_ztimer,$(USEMODULE))) + # ztimer is not used, so use *periph_timer as low-level timer*. + FEATURES_REQUIRED += periph_timer + else + # will use *ztimer_usec as low-level timer* + endif + else + # ztimer_xtimer_compat is used, all of *xtimer's API will be mapped on ztimer.* + endif +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 + include $(RIOTBASE)/sys/test_utils/Makefile.dep