mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2025-01-18 12:52:44 +01:00
5602587dd7
It is often desiderable to sync on multiple threads, e.g. there can be a controller thread that waits for `n` worker threads to finish their job. An inverse semaphore provides an easy primitive to implement this pattern. After being initialized with a value `n` (in counter mode), a call to `sema_inv_wait()` will block until each of the `n` threads has called `sema_inv_post()` exactly once. There are situations where workers might post an event more than once (unless additional state is introduced). For this case, the alternative mask mode is provided. Here the inverse semaphore is initialized with a bit mask, each worker can clear one or multiple bits with `sema_inv_post_mask()`. A worker can clear it's bit multiple times.
1099 lines
24 KiB
Makefile
1099 lines
24 KiB
Makefile
ifneq (,$(filter arduino,$(USEMODULE)))
|
|
FEATURES_OPTIONAL += periph_i2c
|
|
FEATURES_OPTIONAL += periph_spi
|
|
FEATURES_REQUIRED += periph_uart
|
|
FEATURES_REQUIRED += cpp
|
|
SKETCH_MODULE ?= arduino_sketches
|
|
USEMODULE += $(SKETCH_MODULE)
|
|
endif
|
|
|
|
|
|
ifneq (,$(filter arduino,$(USEMODULE)))
|
|
FEATURES_REQUIRED += arduino
|
|
FEATURES_OPTIONAL += arduino_pwm
|
|
FEATURES_OPTIONAL += periph_adc
|
|
FEATURES_REQUIRED += periph_gpio
|
|
USEMODULE += fmt
|
|
USEMODULE += xtimer
|
|
endif
|
|
|
|
ifneq (,$(filter arduino_pwm,$(FEATURES_USED)))
|
|
FEATURES_REQUIRED += periph_pwm
|
|
endif
|
|
|
|
ifneq (,$(filter eepreg,$(USEMODULE)))
|
|
FEATURES_REQUIRED += periph_eeprom
|
|
endif
|
|
|
|
ifneq (,$(filter fmt_table,$(USEMODULE)))
|
|
USEMODULE += fmt
|
|
endif
|
|
|
|
ifneq (,$(filter i2c_scan,$(USEMODULE)))
|
|
FEATURES_REQUIRED += periph_i2c
|
|
endif
|
|
|
|
ifneq (,$(filter prng_fortuna,$(USEMODULE)))
|
|
USEMODULE += crypto_aes
|
|
endif
|
|
|
|
ifneq (,$(filter crypto_aes_%,$(USEMODULE)))
|
|
USEMODULE += crypto_aes
|
|
endif
|
|
|
|
ifneq (,$(filter crypto_%,$(USEMODULE)))
|
|
USEMODULE += crypto
|
|
endif
|
|
|
|
ifneq (,$(filter sys_bus_%,$(USEMODULE)))
|
|
USEMODULE += sys_bus
|
|
USEMODULE += core_msg_bus
|
|
endif
|
|
|
|
ifneq (,$(filter ieee802154_security,$(USEMODULE)))
|
|
USEMODULE += crypto
|
|
USEMODULE += crypto_aes
|
|
USEMODULE += cipher_modes
|
|
endif
|
|
|
|
ifneq (,$(filter rtt_cmd,$(USEMODULE)))
|
|
FEATURES_REQUIRED += periph_rtt
|
|
endif
|
|
|
|
ifneq (,$(filter trace,$(USEMODULE)))
|
|
USEMODULE += xtimer
|
|
endif
|
|
|
|
ifneq (,$(filter shell_commands,$(USEMODULE)))
|
|
ifneq (,$(filter dfplayer,$(USEMODULE)))
|
|
USEMODULE += auto_init_multimedia
|
|
USEMODULE += fmt
|
|
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 ieee802154_radio_hal,$(USEMODULE)))
|
|
USEMODULE += ieee802154
|
|
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
|
|
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,$(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
|
|
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_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
|
|
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 += xtimer
|
|
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 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
|
|
ifneq (,$(filter openwsn_%,$(USEMODULE)))
|
|
USEMODULE += netif
|
|
USEMODULE += ipv6_addr
|
|
endif
|
|
endif
|
|
|
|
ifneq (,$(filter posix_semaphore,$(USEMODULE)))
|
|
USEMODULE += sema
|
|
USEMODULE += xtimer
|
|
USEMODULE += posix_headers
|
|
endif
|
|
|
|
ifneq (,$(filter posix_sleep,$(USEMODULE)))
|
|
USEMODULE += ztimer_msec
|
|
ifneq (,$(filter periph_rtt,$(USEMODULE)))
|
|
USEMODULE += ztimer_periph_rtt
|
|
endif
|
|
USEMODULE += ztimer_usec
|
|
USEMODULE += posix_headers
|
|
endif
|
|
|
|
ifneq (,$(filter posix_inet,$(USEMODULE)))
|
|
USEMODULE += posix_headers
|
|
endif
|
|
|
|
ifneq (,$(filter sema,$(USEMODULE)))
|
|
USEMODULE += xtimer
|
|
endif
|
|
|
|
ifneq (,$(filter sema_inv,$(USEMODULE)))
|
|
USEMODULE += atomic_utils
|
|
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 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
|
|
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 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 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_async,$(USEMODULE)))
|
|
ifneq (,$(filter gnrc%,$(USEMODULE)))
|
|
USEMODULE += gnrc_sock_async
|
|
endif
|
|
ifneq (,$(filter openwsn%,$(USEMODULE)))
|
|
USEMODULE += openwsn_sock_async
|
|
endif
|
|
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_event
|
|
USEMODULE += sock_udp
|
|
USEMODULE += sock_util
|
|
USEMODULE += event_callback
|
|
USEMODULE += event_timeout
|
|
ifneq (,$(filter gnrc%,$(USEMODULE)))
|
|
USEMODULE += gnrc_sock_async
|
|
endif
|
|
ifneq (,$(filter openwsn%,$(USEMODULE)))
|
|
USEMODULE += openwsn_sock_udp
|
|
endif
|
|
endif
|
|
|
|
ifneq (,$(filter luid,$(USEMODULE)))
|
|
FEATURES_OPTIONAL += periph_cpuid
|
|
endif
|
|
|
|
ifneq (,$(filter nanocoap_sock,$(USEMODULE)))
|
|
USEMODULE += sock_udp
|
|
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
|
|
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 += 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 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 riotboot_usb_dfu, $(USEMODULE)))
|
|
USEMODULE += usbus_dfu
|
|
USEMODULE += riotboot_flashwrite
|
|
FEATURES_REQUIRED += no_idle_thread
|
|
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 += uuid
|
|
|
|
ifeq (,$(filter libcose_crypt_%,$(USEMODULE)))
|
|
USEMODULE += libcose_crypt_c25519
|
|
endif
|
|
|
|
# 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
|