ifneq (,$(filter bhp,$(USEMODULE))) USEMODULE += bhp_event endif ifneq (,$(filter gcoap,$(USEMODULE))) USEMODULE += gnrc_sock_async endif ifneq (,$(filter sock_async,$(USEMODULE))) USEMODULE += gnrc_sock_async 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 ifneq (,$(filter ztimer_xtimer_compat,$(USEMODULE))) # requires 64bit timestamps USEMODULE += ztimer64_xtimer_compat endif USEMODULE += gnrc_mac USEMODULE += ztimer_no_periph_rtt FEATURES_REQUIRED += periph_rtt endif ifneq (,$(filter gnrc_lorawan,$(USEMODULE))) USEMODULE += ztimer_msec USEMODULE += random USEMODULE += hashes USEMODULE += iolist USEMODULE += crypto_aes_128 endif ifneq (,$(filter gnrc_lorawan_1_1,$(USEMODULE))) USEMODULE += gnrc_lorawan FEATURES_REQUIRED += periph_flashpage endif ifneq (,$(filter gnrc_netdev_default,$(USEMODULE))) # enable default network devices on the platform USEMODULE += netdev_default endif ifneq (,$(filter netdev_default,$(USEMODULE))) USEMODULE += netdev USEMODULE += gnrc_netif 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_simple_pd endif ifneq (,$(filter gnrc_dhcpv6_client_simple_pd,$(USEMODULE))) USEMODULE += gnrc_dhcpv6_client USEMODULE += dhcpv6_client_ia_pd endif ifneq (,$(filter gnrc_netif_cmd_lora,$(USEMODULE))) USEMODULE += shell_cmd_gnrc_netif_lorawan endif ifneq (,$(filter gnrc_uhcpc,$(USEMODULE))) DEFAULT_MODULE += auto_init_gnrc_uhcpc USEMODULE += uhcpc USEMODULE += gnrc_sock_udp USEMODULE += fmt endif ifneq (,$(filter gnrc_%,$(filter-out gnrc_lorawan gnrc_lorawan_1_1 gnrc_netapi gnrc_netreg gnrc_netif% gnrc_pkt%,$(USEMODULE)))) USEMODULE += gnrc endif ifneq (,$(filter gnrc_sock_%,$(USEMODULE))) USEMODULE += iolist USEMODULE += gnrc_sock ifneq (,$(filter sock_aux_timestamp,$(USEMODULE))) USEMODULE += gnrc_netif_timestamp endif 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_tcp,$(USEMODULE))) USEMODULE += gnrc_tcp 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 gnrc_rpl_p2p,$(USEMODULE))) USEMODULE += gnrc_rpl endif ifneq (,$(filter gnrc_rpl,$(USEMODULE))) USEMODULE += gnrc_icmpv6 USEMODULE += gnrc_ipv6_nib USEMODULE += trickle ifeq (,$(filter ztimer_msec,$(USEMODULE))) USEMODULE += xtimer endif USEMODULE += evtimer endif ifneq (,$(filter gnrc_ipv6_auto_subnets_simple,$(USEMODULE))) USEMODULE += gnrc_ipv6_auto_subnets endif ifneq (,$(filter gnrc_ipv6_auto_subnets,$(USEMODULE))) USEMODULE += gnrc_ipv6_nib_rtr_adv_pio_cb USEMODULE += xtimer ifeq (,$(filter gnrc_ipv6_auto_subnets_simple,$(USEMODULE))) DEFAULT_MODULE += gnrc_ipv6_auto_subnets_auto_init USEMODULE += gnrc_udp endif endif ifneq (,$(filter gnrc_netif,$(USEMODULE))) USEMODULE += netif USEMODULE += l2util USEMODULE += fmt USEMODULE += ztimer_msec 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 USEMODULE += gnrc_nettype_lorawan endif endif ifneq (,$(filter gnrc_netif_bus,$(USEMODULE))) USEMODULE += core_msg_bus 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 endif ifneq (,$(filter gnrc_sixlowpan_default,$(USEMODULE))) USEMODULE += gnrc_ipv6_nib_6ln USEMODULE += gnrc_sixlowpan ifeq (,$(filter gnrc_sixlowpan_frag_sfr,$(USEMODULE))) USEMODULE += gnrc_sixlowpan_frag endif USEMODULE += gnrc_sixlowpan_iphc endif ifneq (,$(filter gnrc_sixlowpan_router_default,$(USEMODULE))) USEMODULE += gnrc_ipv6_nib_6lr ifeq (,$(filter gnrc_sixlowpan_frag_sfr,$(USEMODULE))) USEMODULE += gnrc_sixlowpan_frag endif USEMODULE += gnrc_sixlowpan_iphc endif ifneq (,$(filter gnrc_sixlowpan_border_router_default,$(USEMODULE))) USEMODULE += gnrc_ipv6_nib_6lbr USEMODULE += gnrc_ipv6_router_default ifeq (,$(filter gnrc_sixlowpan_frag_sfr,$(USEMODULE))) USEMODULE += gnrc_sixlowpan_frag endif 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_minfwd,$(USEMODULE))) USEMODULE += gnrc_netif_pktq USEMODULE += gnrc_sixlowpan_frag USEMODULE += gnrc_sixlowpan_frag_hint USEMODULE += gnrc_sixlowpan_frag_vrb endif ifneq (,$(filter gnrc_sixlowpan_frag_rb,$(USEMODULE))) USEMODULE += xtimer endif ifneq (,$(filter gnrc_sixlowpan_frag_sfr,$(USEMODULE))) USEMODULE += gnrc_sixlowpan USEMODULE += gnrc_sixlowpan_frag_fb USEMODULE += gnrc_sixlowpan_frag_vrb USEMODULE += gnrc_sixlowpan_frag_rb USEMODULE += evtimer USEMODULE += xtimer endif ifneq (,$(filter gnrc_sixlowpan_frag_sfr_congure_%,$(USEMODULE))) USEMODULE += gnrc_sixlowpan_frag_sfr_congure endif ifneq (,$(filter gnrc_sixlowpan_frag_sfr_congure_abe,$(USEMODULE))) USEMODULE += gnrc_sixlowpan_frag_sfr_congure_reno USEMODULE += congure_abe endif ifneq (,$(filter gnrc_sixlowpan_frag_sfr_congure_quic,$(USEMODULE))) USEMODULE += congure_quic endif ifneq (,$(filter gnrc_sixlowpan_frag_sfr_congure_reno,$(USEMODULE))) USEMODULE += congure_reno endif ifneq (,$(filter gnrc_sixlowpan_frag_sfr_congure,$(USEMODULE))) USEMODULE += gnrc_sixlowpan_frag_sfr ifeq (,$(filter gnrc_sixlowpan_frag_sfr_congure_% congure_mock,$(USEMODULE))) # pick Appendix C as default congestion control USEMODULE += gnrc_sixlowpan_frag_sfr_congure_sfr endif endif ifneq (,$(filter gnrc_sixlowpan_frag_sfr_ecn_%,$(USEMODULE))) USEMODULE += gnrc_sixlowpan_frag_sfr_ecn endif ifneq (,$(filter gnrc_sixlowpan_frag_sfr_ecn_if_out,$(USEMODULE))) USEMODULE += gnrc_netif_pktq endif ifneq (,$(filter gnrc_sixlowpan_frag_sfr_ecn,$(USEMODULE))) USEMODULE += gnrc_sixlowpan_frag_sfr endif ifneq (,$(filter gnrc_sixlowpan_frag_sfr_stats,$(USEMODULE))) USEMODULE += gnrc_sixlowpan_frag_sfr 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 ifeq (,$(filter ztimer_msec,$(USEMODULE))) USEMODULE += xtimer endif endif ifneq (,$(filter gnrc_ipv6_default,$(USEMODULE))) USEMODULE += gnrc_ipv6 USEMODULE += gnrc_icmpv6 endif ifneq (,$(filter gnrc_ipv6_router_default,$(USEMODULE))) USEMODULE += gnrc_ipv6_nib_rio 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%,$(USEMODULE))) USEMODULE += ipv6 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 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 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 ifneq (,$(filter sock_tcp, $(USEMODULE))) USEMODULE += gnrc_sock_tcp endif endif ifneq (,$(filter gnrc_pktbuf, $(USEMODULE))) ifeq (,$(filter gnrc_pktbuf_%, $(USEMODULE))) USEMODULE += gnrc_pktbuf_static endif ifeq (shell_cmd_gnrc_pktbuf,$(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 shell_cmd_gnrc_pktbuf,$(USEMODULE))) ifneq (,$(filter gnrc_pktbuf_static,$(USEMODULE))) USEMODULE += od endif endif ifneq (,$(filter gnrc_netif_%,$(filter-out gnrc_netif_pktq,$(USEMODULE)))) USEMODULE += gnrc_netif USEMODULE += core_thread_flags USEMODULE += event endif ifneq (,$(filter gnrc_netif_pktq,$(USEMODULE))) USEMODULE += xtimer endif ifneq (,$(filter gnrc_lwmac,$(USEMODULE))) USEMODULE += gnrc_netif USEMODULE += gnrc_nettype_lwmac USEMODULE += gnrc_mac USEMODULE += xtimer FEATURES_REQUIRED += periph_rtt endif