# OLD_USEMODULE := $(sort $(USEMODULE)) OLD_USEPKG := $(sort $(USEPKG)) # include board dependencies -include $(RIOTBOARD)/$(BOARD)/Makefile.dep # pull dependencies from drivers include $(RIOTBASE)/drivers/Makefile.dep ifneq (,$(filter csma_sender,$(USEMODULE))) USEMODULE += random USEMODULE += xtimer endif ifneq (,$(filter nhdp,$(USEMODULE))) USEMODULE += conn_udp USEMODULE += xtimer USEMODULE += oonf_rfc5444 endif ifneq (,$(filter sntp,$(USEMODULE))) USEMODULE += gnrc_sock_udp USEMODULE += xtimer endif ifneq (,$(filter gnrc_netdev_default,$(USEMODULE))) USEMODULE += gnrc_netif USEMODULE += gnrc_netdev2 USEMODULE += netdev_default endif ifneq (,$(filter netdev2_ieee802154,$(USEMODULE))) USEMODULE += ieee802154 endif ifneq (,$(filter gnrc_uhcpc,$(USEMODULE))) USEMODULE += uhcpc USEMODULE += gnrc_sock_udp USEMODULE += fmt endif ifneq (,$(filter nordic_softdevice_ble,$(USEPKG))) USEMODULE += softdevice_handler USEMODULE += ble_common USEMODULE += ble_6lowpan USEMODULE += gnrc_sixlowpan USEMODULE += gnrc_sixlowpan_iphc USEMODULE += gnrc_ipv6_default USEMODULE += gnrc_netdev2 USEMODULE += gnrc_ipv6_netif endif ifneq (,$(filter gnrc_%,$(filter-out gnrc_netapi gnrc_netreg gnrc_netif% gnrc_pktbuf,$(USEMODULE)))) USEMODULE += gnrc endif ifneq (,$(filter gnrc_conn_%,$(USEMODULE))) USEMODULE += gnrc_conn endif ifneq (,$(filter gnrc_conn_udp,$(USEMODULE))) USEMODULE += gnrc_udp endif ifneq (,$(filter gnrc_sock_%,$(USEMODULE))) USEMODULE += gnrc_sock 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 endif ifneq (,$(filter gnrc_netapi_mbox,$(USEMODULE))) USEMODULE += core_mbox endif ifneq (,$(filter netdev2_tap,$(USEMODULE))) USEMODULE += netif USEMODULE += netdev2_eth ifneq (,$(filter gnrc_%,$(USEMODULE))) USEMODULE += gnrc_netdev2 endif endif ifneq (,$(filter gnrc_zep,$(USEMODULE))) USEMODULE += hashes USEMODULE += ieee802154 USEMODULE += gnrc_udp USEMODULE += random USEMODULE += xtimer endif ifneq (,$(filter gcoap,$(USEMODULE))) USEMODULE += gnrc_udp endif ifneq (,$(filter gnrc_tftp,$(USEMODULE))) USEMODULE += gnrc_udp USEMODULE += xtimer endif ifneq (,$(filter gnrc_rpl_p2p,$(USEMODULE))) USEMODULE += gnrc_rpl endif ifneq (,$(filter gnrc_rpl,$(USEMODULE))) USEMODULE += fib USEMODULE += gnrc_ipv6_router_default USEMODULE += trickle USEMODULE += xtimer endif ifneq (,$(filter trickle,$(USEMODULE))) USEMODULE += random USEMODULE += xtimer endif ifneq (,$(filter ieee802154,$(USEMODULE))) ifneq (,$(filter gnrc_ipv6, $(USEMODULE))) USEMODULE += gnrc_sixlowpan endif ifneq (,$(filter gnrc_ipv6_router, $(USEMODULE))) USEMODULE += gnrc_sixlowpan_router 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_default USEMODULE += gnrc_sixlowpan USEMODULE += gnrc_sixlowpan_nd USEMODULE += gnrc_sixlowpan_frag USEMODULE += gnrc_sixlowpan_iphc endif ifneq (,$(filter gnrc_sixlowpan_router_default,$(USEMODULE))) USEMODULE += gnrc_ipv6_router_default USEMODULE += gnrc_sixlowpan_router USEMODULE += gnrc_sixlowpan_frag USEMODULE += gnrc_sixlowpan_iphc endif ifneq (,$(filter gnrc_sixlowpan_border_router_default,$(USEMODULE))) USEMODULE += gnrc_ipv6_router_default USEMODULE += gnrc_sixlowpan_nd_border_router USEMODULE += gnrc_sixlowpan_router USEMODULE += gnrc_sixlowpan_frag USEMODULE += gnrc_sixlowpan_iphc endif ifneq (,$(filter gnrc_sixlowpan_router,$(USEMODULE))) USEMODULE += gnrc_sixlowpan_nd_router endif ifneq (,$(filter gnrc_sixlowpan_frag,$(USEMODULE))) USEMODULE += gnrc_sixlowpan USEMODULE += xtimer endif ifneq (,$(filter gnrc_sixlowpan_iphc,$(USEMODULE))) USEMODULE += gnrc_sixlowpan USEMODULE += gnrc_sixlowpan_ctx USEMODULE += gnrc_sixlowpan_iphc_nhc endif ifneq (,$(filter gnrc_sixlowpan,$(USEMODULE))) USEMODULE += gnrc_ipv6 USEMODULE += gnrc_sixlowpan_netif USEMODULE += sixlowpan endif ifneq (,$(filter gnrc_sixlowpan_ctx,$(USEMODULE))) USEMODULE += ipv6_addr USEMODULE += xtimer endif ifneq (,$(filter gnrc_sixlowpan_nd_border_router,$(USEMODULE))) USEMODULE += gnrc_sixlowpan_nd_router endif ifneq (,$(filter gnrc_sixlowpan_nd_router,$(USEMODULE))) USEMODULE += gnrc_sixlowpan_nd endif ifneq (,$(filter gnrc_sixlowpan_nd,$(USEMODULE))) USEMODULE += gnrc_ndp USEMODULE += gnrc_ndp_internal USEMODULE += gnrc_sixlowpan_ctx USEMODULE += random USEMODULE += xtimer endif ifneq (,$(filter gnrc_ipv6_default,$(USEMODULE))) USEMODULE += gnrc_ipv6 USEMODULE += gnrc_icmpv6 ifeq (1,$(GNRC_NETIF_NUMOF)) ifeq (,$(filter gnrc_sixlowpan_nd,$(USEMODULE))) USEMODULE += gnrc_ndp_host endif else USEMODULE += gnrc_ndp_host endif endif ifneq (,$(filter gnrc_ipv6_router_default,$(USEMODULE))) USEMODULE += gnrc_ipv6_router USEMODULE += gnrc_icmpv6 ifeq (1,$(GNRC_NETIF_NUMOF)) ifeq (,$(filter gnrc_sixlowpan_nd_router,$(USEMODULE))) USEMODULE += gnrc_ndp_router endif else USEMODULE += gnrc_ndp_router endif endif ifneq (,$(filter gnrc_ndp_host,$(USEMODULE))) USEMODULE += gnrc_ndp_node USEMODULE += random USEMODULE += xtimer endif ifneq (,$(filter gnrc_ndp_router,$(USEMODULE))) USEMODULE += gnrc_ndp_node USEMODULE += random USEMODULE += xtimer endif ifneq (,$(filter gnrc_ndp_node,$(USEMODULE))) USEMODULE += gnrc_ndp_internal endif ifneq (,$(filter gnrc_ndp_%,$(USEMODULE))) USEMODULE += gnrc_ndp endif ifneq (,$(filter gnrc_ndp,$(USEMODULE))) ifneq (,$(filter gnrc_sixlowpan,$(USEMODULE))) USEMODULE += gnrc_sixlowpan_nd else USEMODULE += gnrc_ndp_node endif USEMODULE += gnrc_ndp_internal USEMODULE += gnrc_icmpv6 USEMODULE += random USEMODULE += xtimer endif ifneq (,$(filter gnrc_icmpv6_echo,$(USEMODULE))) USEMODULE += gnrc_icmpv6 endif ifneq (,$(filter gnrc_icmpv6_error,$(USEMODULE))) USEMODULE += gnrc_icmpv6 endif ifneq (,$(filter gnrc_icmpv6,$(USEMODULE))) USEMODULE += inet_csum USEMODULE += gnrc_ipv6 endif ifneq (,$(filter gnrc_rpl_srh,$(USEMODULE))) USEMODULE += ipv6_ext_rh endif ifneq (,$(filter ipv6_ext_rh,$(USEMODULE))) USEMODULE += ipv6_ext endif ifneq (,$(filter gnrc_ipv6_ext,$(USEMODULE))) USEMODULE += gnrc_ipv6 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 endif ifneq (,$(filter gnrc_ipv6,$(USEMODULE))) USEMODULE += inet_csum USEMODULE += ipv6_addr USEMODULE += gnrc_ipv6_hdr USEMODULE += gnrc_ipv6_nc USEMODULE += gnrc_ipv6_netif 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_nc,$(USEMODULE))) USEMODULE += ipv6_addr endif ifneq (,$(filter gnrc_ipv6_netif,$(USEMODULE))) USEMODULE += ipv6_addr USEMODULE += gnrc_netif USEMODULE += bitfield USEMODULE += xtimer endif ifneq (,$(filter gnrc_udp,$(USEMODULE))) USEMODULE += inet_csum USEMODULE += udp endif ifneq (,$(filter gnrc_nettest,$(USEMODULE))) USEMODULE += gnrc_netapi USEMODULE += gnrc_netreg USEMODULE += gnrc_netif USEMODULE += gnrc_pktbuf USEMODULE += xtimer endif ifneq (,$(filter gnrc_pktdump,$(USEMODULE))) USEMODULE += gnrc_pktbuf USEMODULE += od 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 ifeq (,$(filter rtt_stdio,$(USEMODULE))) USEMODULE += uart_stdio endif endif ifneq (,$(filter posix_sockets,$(USEMODULE))) USEMODULE += posix USEMODULE += random endif ifneq (,$(filter rtt_stdio,$(USEMODULE))) USEMODULE += xtimer endif ifneq (,$(filter uart_stdio,$(USEMODULE))) USEMODULE += isrpipe endif ifneq (,$(filter isrpipe,$(USEMODULE))) USEMODULE += tsrb endif ifneq (,$(filter posix,$(USEMODULE))) USEMODULE += xtimer endif ifneq (,$(filter posix_semaphore,$(USEMODULE))) USEMODULE += sema USEMODULE += xtimer endif ifneq (,$(filter lwip_sixlowpan,$(USEMODULE))) USEMODULE += lwip_ipv6_autoconfig 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_conn_%,$(USEMODULE))) USEMODULE += lwip_conn endif ifneq (,$(filter lwip_conn_ip,$(USEMODULE))) USEMODULE += lwip_raw endif ifneq (,$(filter lwip_conn_udp,$(USEMODULE))) USEMODULE += lwip_udp endif ifneq (,$(filter lwip_%,$(USEMODULE))) USEMODULE += lwip 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 endif ifneq (,$(filter lwip_ppp,$(USEMODULE))) USEMODULE += lwip_polarssl endif ifneq (,$(filter lwip_contrib,$(USEMODULE))) USEMODULE += sema endif ifneq (,$(filter sema,$(USEMODULE))) USEMODULE += xtimer endif ifneq (,$(filter libfixmath-unittests,$(USEMODULE))) USEPKG += libfixmath USEMODULE += libfixmath endif ifneq (,$(filter fib,$(USEMODULE))) USEMODULE += universal_address USEMODULE += xtimer endif ifneq (,$(filter oonf_rfc5444,$(USEMODULE))) USEMODULE += oonf_common endif ifneq (,$(filter oonf_common,$(USEMODULE))) USEPKG += oonf_api USEMODULE += posix_sockets endif ifneq (,$(filter %_conn_ip,$(USEMODULE))) USEMODULE += conn_ip endif ifneq (,$(filter %_conn_tcp,$(USEMODULE))) USEMODULE += conn_tcp endif ifneq (,$(filter %_conn_udp,$(USEMODULE))) USEMODULE += conn_udp endif ifneq (,$(filter conn_%,$(USEMODULE))) USEMODULE += conn 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 endif ifneq (,$(filter gnrc,$(USEMODULE))) USEMODULE += gnrc_netapi USEMODULE += gnrc_netreg USEMODULE += gnrc_netif USEMODULE += gnrc_netif_hdr USEMODULE += gnrc_pktbuf endif ifneq (,$(filter gnrc_pktbuf, $(USEMODULE))) ifeq (,$(filter gnrc_pktbuf_%, $(USEMODULE))) USEMODULE += gnrc_pktbuf_static endif 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_netdev2,$(USEMODULE))) USEMODULE += netopt endif ifneq (,$(filter netstats_%, $(USEMODULE))) USEMODULE += netstats endif ifneq (,$(filter pthread,$(USEMODULE))) USEMODULE += xtimer USEMODULE += timex endif ifneq (,$(filter schedstatistics,$(USEMODULE))) USEMODULE += xtimer endif ifneq (,$(filter arduino,$(USEMODULE))) FEATURES_REQUIRED += arduino FEATURES_REQUIRED += cpp USEMODULE += xtimer endif ifneq (,$(filter xtimer,$(USEMODULE))) FEATURES_REQUIRED += periph_timer USEMODULE += div endif ifneq (,$(filter saul_reg,$(USEMODULE))) USEMODULE += saul endif ifneq (,$(filter saul_default,$(USEMODULE))) USEMODULE += saul endif ifneq (,$(filter saul,$(USEMODULE))) USEMODULE += phydat endif ifneq (,$(filter phydat,$(USEMODULE))) USEMODULE += fmt endif ifneq (,$(filter random,$(USEMODULE))) # select default prng ifeq (,$(filter prng_%,$(USEMODULE))) USEMODULE += prng_tinymt32 endif ifneq (,$(filter prng_tinymt32,$(USEMODULE))) USEMODULE += tinymt32 endif endif # include package dependencies -include $(USEPKG:%=$(RIOTPKG)/%/Makefile.dep) # recursively catch transitive dependencies USEMODULE := $(sort $(USEMODULE)) USEPKG := $(sort $(USEPKG)) ifneq ($(OLD_USEMODULE) $(OLD_USEPKG),$(USEMODULE) $(USEPKG)) include $(RIOTBASE)/Makefile.dep endif