mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
f0b60d5a0d
17091: USBUS: Add URB support r=benpicco a=bergzand ### Contribution description This commit adds support for URBs (USB Request/Response Blocks). These allow for submitting multi-transfer sized buffers with USBUS handling the individual usbdev xmits. Multiple URBs can be queued at once for a single endpoint and USBUS will handle them in the order of submission. OUT endpoint URBs must always consist of a whole number of full-sized transfers (N x MaxEndpointSize). They will automatically finish after the endpoint received a transfer less than the endpoint size. IN endpoints can be arbitrary-sized and do not have to consist of a whole number of full-sized transmissions. They support a flag to indicate that the last transfer in the sequence must be less than a full sized transfer (USBUS_URB_FLAG_AUTO_ZLP) and this adds a zero length transfer at the end of the transmissions if the last transfer was equal to the maximum transfer size. URBs can be cancelled, but if the URB is already being processed it will be cancelled after the current transmission within the URB is finished. If it is still in the queue it will immediately be removed from the queue. ### Testing procedure - `tests/usbus_cdc_ecm` should still work. Testing one of the usbdev-supported platform should be sufficient here. ### Issues/PRs references Needs #17064 18148: sys/flash_utils: helpers to store data in flash r=benpicco a=maribu ### Contribution description This helpers that allow storing, accessing, and working with data in flash that works for both classical Harvard architectures (which do not map flash also into the address space) as well as modern Harvard architectures and von-Neumann architectures. With this, `examples/default` again runs on the Arduino Uno / Nano. Since this board is still the "entry kit" for many people to embedded hardware, it would be nice to support it with our default example. ### Testing procedure `examples/default` should run and work on ATmega boards (especially ATmega328P and ATmega32U4 based boards) as well on all other boards now. ### Issues/PRs references None Co-authored-by: Koen Zandberg <koen@bergzand.net> Co-authored-by: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
1056 lines
23 KiB
Makefile
1056 lines
23 KiB
Makefile
ifneq (,$(filter arduino,$(USEMODULE)))
|
|
FEATURES_OPTIONAL += periph_adc
|
|
FEATURES_OPTIONAL += periph_i2c
|
|
FEATURES_OPTIONAL += periph_spi
|
|
FEATURES_REQUIRED += arduino
|
|
FEATURES_REQUIRED += cpp
|
|
FEATURES_REQUIRED += periph_gpio
|
|
FEATURES_REQUIRED += periph_uart
|
|
USEMODULE += arduino_sketches
|
|
USEMODULE += fmt
|
|
USEMODULE += ztimer_usec
|
|
USEMODULE += ztimer_msec
|
|
ifneq (,$(filter stdio_cdc_acm,$(USEMODULE)))
|
|
USEMODULE += arduino_serial_stdio
|
|
endif
|
|
endif
|
|
|
|
ifneq (,$(filter arduino_pwm,$(FEATURES_USED)))
|
|
FEATURES_REQUIRED += periph_pwm
|
|
endif
|
|
|
|
# cannot be moved to GNRC's Makefile.dep, as module name neither starts or ends with gnrc
|
|
ifneq (,$(filter auto_init_gnrc_netif,$(USEMODULE)))
|
|
USEMODULE += gnrc_netif_init_devs
|
|
endif
|
|
|
|
ifneq (,$(filter auto_init_wdt_thread,$(USEMODULE)))
|
|
USEMODULE += periph_wdt_auto_start
|
|
USEMODULE += ztimer_msec
|
|
|
|
# we can only have either auto_init_wdt_event or auto_init_wdt_thread
|
|
ifneq (,$(filter auto_init_wdt_event,$(USEMODULE)))
|
|
$(error auto_init_wdt_event and auto_init_wdt_thread are mutually exclusive)
|
|
endif
|
|
endif
|
|
|
|
ifneq (,$(filter auto_init_wdt_event,$(USEMODULE)))
|
|
USEMODULE += event_periodic_callback
|
|
USEMODULE += event_thread
|
|
USEMODULE += periph_wdt_auto_start
|
|
USEMODULE += ztimer_msec
|
|
endif
|
|
|
|
ifneq (,$(filter auto_init_sock_dns,$(USEMODULE)))
|
|
ifneq (,$(filter ipv4,$(USEMODULE)))
|
|
USEMODULE += ipv4_addr
|
|
endif
|
|
ifneq (,$(filter ipv6,$(USEMODULE)))
|
|
USEMODULE += ipv6_addr
|
|
endif
|
|
endif
|
|
|
|
ifneq (,$(filter coding,$(USEMODULE)))
|
|
USEMODULE += bitfield
|
|
endif
|
|
|
|
ifneq (,$(filter congure_%,$(USEMODULE)))
|
|
USEMODULE += congure
|
|
endif
|
|
|
|
ifneq (,$(filter congure_abe,$(USEMODULE)))
|
|
USEMODULE += congure_reno_methods
|
|
endif
|
|
|
|
ifneq (,$(filter congure_quic,$(USEMODULE)))
|
|
USEMODULE += ztimer_msec
|
|
endif
|
|
|
|
ifneq (,$(filter congure_test,$(USEMODULE)))
|
|
USEMODULE += fmt
|
|
endif
|
|
|
|
ifneq (,$(filter congure_reno,$(USEMODULE)))
|
|
USEMODULE += congure_reno_methods
|
|
endif
|
|
|
|
ifneq (,$(filter congure_reno_methods,$(USEMODULE)))
|
|
USEMODULE += seq
|
|
endif
|
|
|
|
ifneq (,$(filter crc16_fast,$(USEMODULE)))
|
|
USEMODULE += checksum
|
|
endif
|
|
|
|
ifneq (,$(filter crc32_fast,$(USEMODULE)))
|
|
USEMODULE += checksum
|
|
endif
|
|
|
|
ifneq (,$(filter debug_irq_disable,$(USEMODULE)))
|
|
USEMODULE += fmt
|
|
endif
|
|
|
|
ifneq (,$(filter eepreg,$(USEMODULE)))
|
|
FEATURES_REQUIRED += periph_eeprom
|
|
endif
|
|
|
|
ifneq (,$(filter fmt_table,$(USEMODULE)))
|
|
USEMODULE += fmt
|
|
endif
|
|
|
|
ifneq (,$(filter prng_fortuna,$(USEMODULE)))
|
|
USEMODULE += crypto_aes_128
|
|
endif
|
|
|
|
ifneq (,$(filter crypto_%,$(USEMODULE)))
|
|
USEMODULE += crypto
|
|
endif
|
|
|
|
ifneq (,$(filter cipher_modes,$(USEMODULE)))
|
|
USEMODULE += crypto
|
|
endif
|
|
|
|
ifneq (,$(filter crypto,$(USEMODULE)))
|
|
DEFAULT_MODULE += crypto_aes_128
|
|
endif
|
|
|
|
ifneq (,$(filter sys_bus_%,$(USEMODULE)))
|
|
USEMODULE += sys_bus
|
|
USEMODULE += core_msg_bus
|
|
endif
|
|
|
|
ifneq (,$(filter ieee802154_security,$(USEMODULE)))
|
|
USEMODULE += crypto
|
|
USEMODULE += crypto_aes_128
|
|
USEMODULE += cipher_modes
|
|
endif
|
|
|
|
ifneq (,$(filter trace,$(USEMODULE)))
|
|
USEMODULE += ztimer
|
|
USEMODULE += ztimer_usec
|
|
endif
|
|
|
|
ifneq (,$(filter shell_lock,$(USEMODULE)))
|
|
USEMODULE += ztimer_msec
|
|
endif
|
|
|
|
ifneq (,$(filter ssp,$(USEMODULE)))
|
|
FEATURES_REQUIRED += ssp
|
|
endif
|
|
|
|
ifneq (,$(filter base64url,$(USEMODULE)))
|
|
USEMODULE += base64
|
|
endif
|
|
|
|
ifneq (,$(filter csma_sender,$(USEMODULE)))
|
|
USEMODULE += random
|
|
USEMODULE += ztimer_usec
|
|
endif
|
|
|
|
ifneq (,$(filter dhcpv6_%,$(USEMODULE)))
|
|
USEMODULE += dhcpv6
|
|
endif
|
|
|
|
ifneq (,$(filter dhcpv6_client,$(USEMODULE)))
|
|
USEMODULE += event
|
|
USEMODULE += event_timeout
|
|
ifneq (,$(filter ztimer,$(USEMODULE)))
|
|
USEMODULE += event_timeout_ztimer
|
|
USEMODULE += ztimer_msec ztimer_sec
|
|
endif
|
|
USEMODULE += random
|
|
ifneq (,$(filter sock_dns,$(USEMODULE)))
|
|
USEMODULE += dhcpv6_client_dns
|
|
endif
|
|
endif
|
|
|
|
ifneq (,$(filter dhcpv6_relay,$(USEMODULE)))
|
|
DEFAULT_MODULE += auto_init_dhcpv6_relay
|
|
USEMODULE += event
|
|
USEMODULE += sock_async_event
|
|
USEMODULE += sock_udp
|
|
endif
|
|
|
|
ifneq (,$(filter dns_%,$(USEMODULE)))
|
|
USEMODULE += dns
|
|
endif
|
|
|
|
ifneq (,$(filter fuzzing,$(USEMODULE)))
|
|
USEMODULE += netdev_test
|
|
USEMODULE += gnrc_netif
|
|
USEMODULE += gnrc_pktbuf_malloc
|
|
endif
|
|
|
|
# include GNRC dependencies
|
|
ifneq (,$(filter gnrc% %gnrc,$(USEMODULE)))
|
|
include $(RIOTBASE)/sys/net/gnrc/Makefile.dep
|
|
endif
|
|
|
|
ifneq (,$(filter sntp,$(USEMODULE)))
|
|
USEMODULE += sock_udp
|
|
USEMODULE += xtimer
|
|
ifneq (,$(filter ztimer_xtimer_compat,$(USEMODULE)))
|
|
# requires 64bit ftimestamps
|
|
USEMODULE += ztimer64_xtimer_compat
|
|
endif
|
|
endif
|
|
|
|
ifneq (,$(filter sock_%,$(USEMODULE)))
|
|
USEMODULE += iolist
|
|
endif
|
|
|
|
ifneq (,$(filter netdev_ieee802154,$(USEMODULE)))
|
|
USEMODULE += ieee802154
|
|
USEMODULE += random
|
|
endif
|
|
|
|
ifneq (,$(filter netdev_ieee802154_submac,$(USEMODULE)))
|
|
USEMODULE += netdev_ieee802154
|
|
USEMODULE += netdev_legacy_api
|
|
USEMODULE += ieee802154
|
|
USEMODULE += ieee802154_submac
|
|
USEMODULE += ztimer_usec
|
|
endif
|
|
|
|
ifneq (,$(filter uhcpc,$(USEMODULE)))
|
|
USEMODULE += posix_inet
|
|
USEMODULE += ztimer_msec
|
|
endif
|
|
|
|
ifneq (,$(filter netdev_tap,$(USEMODULE)))
|
|
USEMODULE += netif
|
|
USEMODULE += netdev_eth
|
|
USEMODULE += iolist
|
|
endif
|
|
|
|
ifneq (,$(filter trickle,$(USEMODULE)))
|
|
USEMODULE += random
|
|
ifeq (,$(filter ztimer_msec,$(USEMODULE)))
|
|
USEMODULE += xtimer
|
|
ifneq (,$(filter ztimer_xtimer_compat,$(USEMODULE)))
|
|
USEMODULE += ztimer_msec
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
ifneq (,$(filter eui_provider,$(USEMODULE)))
|
|
USEMODULE += luid
|
|
endif
|
|
|
|
ifneq (,$(filter ieee802154 nrfmin esp_now cc110x,$(USEMODULE)))
|
|
ifneq (,$(filter lwip%, $(USEMODULE)))
|
|
USEMODULE += lwip_sixlowpan
|
|
endif
|
|
endif
|
|
|
|
ifneq (,$(filter sixlowpan,$(USEMODULE)))
|
|
USEMODULE += ipv6_hdr
|
|
endif
|
|
|
|
ifneq (,$(filter ipv6_hdr,$(USEMODULE)))
|
|
USEMODULE += inet_csum
|
|
USEMODULE += ipv6_addr
|
|
endif
|
|
|
|
ifneq (,$(filter ieee802154_submac,$(USEMODULE)))
|
|
USEMODULE += ztimer_usec
|
|
USEMODULE += random
|
|
endif
|
|
|
|
ifneq (,$(filter l2util,$(USEMODULE)))
|
|
USEMODULE += fmt
|
|
endif
|
|
|
|
ifneq (,$(filter od,$(USEMODULE)))
|
|
USEMODULE += fmt
|
|
endif
|
|
|
|
ifneq (,$(filter od_string,$(USEMODULE)))
|
|
USEMODULE += od
|
|
endif
|
|
|
|
ifneq (,$(filter netutils,$(USEMODULE)))
|
|
USEMODULE += ipv6_addr
|
|
endif
|
|
|
|
ifneq (,$(filter newlib_gnu_source,$(USEMODULE)))
|
|
FEATURES_REQUIRED += newlib
|
|
endif
|
|
|
|
ifneq (,$(filter newlib_nano,$(USEMODULE)))
|
|
FEATURES_REQUIRED += newlib
|
|
endif
|
|
|
|
ifneq (,$(filter newlib,$(USEMODULE)))
|
|
# allow custom newlib syscalls implementations by adding
|
|
# newlib_syscalls_XXX to USEMODULE
|
|
ifeq (,$(filter newlib_syscalls_%,$(USEMODULE)))
|
|
USEMODULE += newlib_syscalls_default
|
|
endif
|
|
ifneq (,$(filter newlib_syscalls_default,$(USEMODULE)))
|
|
USEMODULE += div
|
|
ifneq (,$(filter libc_gettimeofday,$(USEMODULE)))
|
|
USEMODULE += xtimer
|
|
ifneq (,$(filter ztimer_xtimer_compat,$(USEMODULE)))
|
|
# requires 64bit timestamps
|
|
USEMODULE += ztimer64_xtimer_compat
|
|
endif
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
ifneq (,$(filter posix_select,$(USEMODULE)))
|
|
ifneq (,$(filter posix_sockets,$(USEMODULE)))
|
|
USEMODULE += sock_async
|
|
endif
|
|
USEMODULE += core_thread_flags
|
|
USEMODULE += posix_headers
|
|
USEMODULE += ztimer64_usec
|
|
endif
|
|
|
|
ifneq (,$(filter picolibc,$(USEMODULE)))
|
|
# allow custom picolibc syscalls implementations by adding
|
|
# picolibc_syscalls_XXX to USEMODULE
|
|
ifeq (,$(filter picolibc_syscalls_%,$(USEMODULE)))
|
|
USEMODULE += picolibc_syscalls_default
|
|
endif
|
|
endif
|
|
|
|
ifneq (,$(filter posix_sockets,$(USEMODULE)))
|
|
USEMODULE += bitfield
|
|
USEMODULE += random
|
|
USEMODULE += vfs
|
|
USEMODULE += posix_headers
|
|
endif
|
|
|
|
ifneq (,$(filter md5sum ,$(USEMODULE)))
|
|
USEMODULE += shell_cmd_md5sum
|
|
endif
|
|
|
|
ifneq (,$(filter sha1sum,$(USEMODULE)))
|
|
USEMODULE += shell_cmd_sha1sum
|
|
endif
|
|
|
|
ifneq (,$(filter sha256sum,$(USEMODULE)))
|
|
USEMODULE += shell_cmd_sha256sum
|
|
endif
|
|
|
|
ifneq (,$(filter random_cmd,$(USEMODULE)))
|
|
USEMODULE += shell_cmd_random
|
|
endif
|
|
|
|
ifneq (,$(filter shell%,$(USEMODULE)))
|
|
USEMODULE += stdin
|
|
include $(RIOTBASE)/sys/shell/Makefile.dep
|
|
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 md5sum sha1sum sha256sum,$(USEMODULE)))
|
|
USEMODULE += vfs_util
|
|
USEMODULE += hashes
|
|
endif
|
|
|
|
ifneq (,$(filter posix_semaphore,$(USEMODULE)))
|
|
USEMODULE += sema_deprecated
|
|
USEMODULE += ztimer64_usec
|
|
USEMODULE += posix_headers
|
|
endif
|
|
|
|
ifneq (,$(filter posix_sleep,$(USEMODULE)))
|
|
USEMODULE += ztimer_msec
|
|
USEMODULE += ztimer_usec
|
|
USEMODULE += posix_headers
|
|
endif
|
|
|
|
ifneq (,$(filter posix_inet,$(USEMODULE)))
|
|
USEMODULE += posix_headers
|
|
endif
|
|
|
|
ifneq (,$(filter sema_inv,$(USEMODULE)))
|
|
USEMODULE += atomic_utils
|
|
endif
|
|
|
|
ifneq (,$(filter sema,$(USEMODULE)))
|
|
USEMODULE += ztimer
|
|
endif
|
|
|
|
ifneq (,$(filter sema_deprecated,$(USEMODULE)))
|
|
USEMODULE += sema
|
|
USEMODULE += ztimer64
|
|
USEMODULE += ztimer64_usec
|
|
endif
|
|
|
|
ifneq (,$(filter telnet,$(USEMODULE)))
|
|
USEMODULE += pipe
|
|
USEMODULE += sock_tcp
|
|
endif
|
|
|
|
ifneq (,$(filter luid,$(USEMODULE)))
|
|
FEATURES_OPTIONAL += periph_cpuid
|
|
endif
|
|
|
|
ifneq (,$(filter fib,$(USEMODULE)))
|
|
USEMODULE += universal_address
|
|
USEMODULE += xtimer
|
|
ifneq (,$(filter ztimer_xtimer_compat,$(USEMODULE)))
|
|
USEMODULE += ztimer64_xtimer_compat
|
|
endif
|
|
USEMODULE += posix_headers
|
|
endif
|
|
|
|
# if any log_* is used, also use LOG pseudomodule
|
|
ifneq (,$(filter log_%,$(USEMODULE)))
|
|
USEMODULE += log
|
|
endif
|
|
|
|
ifneq (,$(filter log_color,$(USEMODULE)))
|
|
# log_color fails to compile with -Wformat-nonliteral but this is required
|
|
# for the wrapped stdio that pushes the format string into progmem
|
|
FEATURES_BLACKLIST += arch_avr8
|
|
endif
|
|
|
|
ifneq (,$(filter cpp11-compat,$(USEMODULE)))
|
|
USEMODULE += cpp_new_delete
|
|
USEMODULE += xtimer
|
|
USEMODULE += timex
|
|
FEATURES_REQUIRED += cpp
|
|
FEATURES_REQUIRED += libstdcpp
|
|
ifneq (,$(filter ztimer_xtimer_compat,$(USEMODULE)))
|
|
# requires 64bit for syscalls
|
|
USEMODULE += ztimer64_xtimer_compat
|
|
endif
|
|
endif
|
|
|
|
ifneq (,$(filter netstats_%, $(USEMODULE)))
|
|
USEMODULE += netstats
|
|
endif
|
|
|
|
ifneq (,$(filter netstats_neighbor_%, $(USEMODULE)))
|
|
USEMODULE += netstats_neighbor
|
|
USEMODULE += xtimer
|
|
endif
|
|
|
|
ifneq (,$(filter pthread,$(USEMODULE)))
|
|
USEMODULE += ztimer64_usec
|
|
USEMODULE += timex
|
|
ifneq (,$(filter ztimer_xtimer_compat,$(USEMODULE)))
|
|
# requires 64bit ftimestamps
|
|
USEMODULE += ztimer64_xtimer_compat
|
|
endif
|
|
endif
|
|
|
|
ifneq (,$(filter schedstatistics,$(USEMODULE)))
|
|
USEMODULE += ztimer_usec
|
|
USEMODULE += sched_cb
|
|
endif
|
|
|
|
ifneq (,$(filter sched_round_robin,$(USEMODULE)))
|
|
# this depends on either ztimer_usec or ztimer_msec if neither is used
|
|
# prior to this msec is preferred
|
|
ifeq (,$(filter ztimer_usec,$(USEMODULE))$(filter ztimer_msec,$(USEMODULE)))
|
|
USEMODULE += ztimer_msec
|
|
endif
|
|
USEMODULE += sched_runq_callback
|
|
endif
|
|
|
|
ifneq (,$(filter saul_reg,$(USEMODULE)))
|
|
USEMODULE += saul
|
|
endif
|
|
|
|
ifneq (,$(filter saul_default,$(USEMODULE)))
|
|
DEFAULT_MODULE += auto_init_saul
|
|
DEFAULT_MODULE += saul_init_devs
|
|
USEMODULE += saul
|
|
USEMODULE += saul_reg
|
|
endif
|
|
|
|
ifneq (,$(filter senml%,$(USEMODULE)))
|
|
include $(RIOTBASE)/sys/senml/Makefile.dep
|
|
endif
|
|
|
|
ifneq (,$(filter phydat,$(USEMODULE)))
|
|
USEMODULE += fmt
|
|
endif
|
|
|
|
ifneq (,$(filter pm_layered,$(USEMODULE)))
|
|
FEATURES_REQUIRED += periph_pm
|
|
endif
|
|
|
|
ifneq (,$(filter evtimer_mbox,$(USEMODULE)))
|
|
USEMODULE += evtimer
|
|
USEMODULE += core_mbox
|
|
endif
|
|
|
|
ifneq (,$(filter can,$(USEMODULE)))
|
|
USEMODULE += can_raw
|
|
ifneq (,$(filter can_mbox,$(USEMODULE)))
|
|
USEMODULE += core_mbox
|
|
endif
|
|
USEMODULE += memarray
|
|
endif
|
|
|
|
ifneq (,$(filter can_isotp,$(USEMODULE)))
|
|
USEMODULE += ztimer
|
|
USEMODULE += ztimer_usec
|
|
USEMODULE += gnrc_pktbuf
|
|
endif
|
|
|
|
ifneq (,$(filter conn_can,$(USEMODULE)))
|
|
USEMODULE += can
|
|
USEMODULE += can_mbox
|
|
USEMODULE += ztimer
|
|
USEMODULE += ztimer_usec
|
|
endif
|
|
|
|
ifneq (,$(filter entropy_source_%,$(USEMODULE)))
|
|
USEMODULE += entropy_source
|
|
ifneq (,$(filter entropy_source_adc_noise,$(USEMODULE)))
|
|
FEATURES_REQUIRED += periph_adc
|
|
endif
|
|
endif
|
|
|
|
ifneq (,$(filter puf_sram,$(USEMODULE)))
|
|
USEMODULE += hashes
|
|
USEMODULE += random
|
|
FEATURES_REQUIRED += puf_sram
|
|
endif
|
|
|
|
ifneq (,$(filter random,$(USEMODULE)))
|
|
DEFAULT_MODULE += auto_init_random
|
|
USEMODULE += prng
|
|
|
|
ifneq (,$(filter prng_fortuna,$(USEMODULE)))
|
|
USEMODULE += fortuna
|
|
USEMODULE += hashes
|
|
USEMODULE += crypto
|
|
ifneq (,$(filter fortuna_reseed,$(USEMODULE)))
|
|
USEMODULE += atomic_utils
|
|
USEMODULE += xtimer
|
|
endif
|
|
endif
|
|
|
|
ifneq (,$(filter prng_tinymt32,$(USEMODULE)))
|
|
USEMODULE += tinymt32
|
|
endif
|
|
|
|
ifneq (,$(filter prng_sha%prng,$(USEMODULE)))
|
|
USEMODULE += prng_shaxprng
|
|
USEMODULE += hashes
|
|
endif
|
|
|
|
ifneq (,$(filter prng_hwrng,$(USEMODULE)))
|
|
FEATURES_REQUIRED += periph_hwrng
|
|
endif
|
|
|
|
ifeq (,$(filter puf_sram,$(USEMODULE)))
|
|
FEATURES_OPTIONAL += periph_hwrng
|
|
endif
|
|
|
|
USEMODULE += luid
|
|
endif
|
|
|
|
ifneq (,$(filter hashes,$(USEMODULE)))
|
|
USEMODULE += crypto
|
|
endif
|
|
|
|
ifneq (,$(filter asymcute,$(USEMODULE)))
|
|
USEMODULE += sock_udp
|
|
USEMODULE += sock_util
|
|
USEMODULE += sock_async_event
|
|
USEMODULE += random
|
|
USEMODULE += event_timeout
|
|
USEMODULE += event_callback
|
|
endif
|
|
|
|
ifneq (,$(filter event_periodic_callback,$(USEMODULE)))
|
|
USEMODULE += event_callback
|
|
USEMODULE += event_periodic
|
|
endif
|
|
|
|
ifneq (,$(filter emcute,$(USEMODULE)))
|
|
USEMODULE += core_thread_flags
|
|
USEMODULE += sock_udp
|
|
USEMODULE += xtimer
|
|
endif
|
|
|
|
ifneq (,$(filter constfs,$(USEMODULE)))
|
|
USEMODULE += vfs
|
|
endif
|
|
|
|
ifneq (,$(filter devfs,$(USEMODULE)))
|
|
USEMODULE += vfs
|
|
endif
|
|
|
|
ifneq (,$(filter vfs_default,$(USEMODULE)))
|
|
USEMODULE += vfs
|
|
DEFAULT_MODULE += vfs_auto_mount
|
|
endif
|
|
|
|
ifneq (,$(filter vfs_util,$(USEMODULE)))
|
|
USEMODULE += vfs
|
|
endif
|
|
|
|
ifneq (,$(filter vfs,$(USEMODULE)))
|
|
USEMODULE += posix_headers
|
|
ifeq (native, $(BOARD))
|
|
USEMODULE += native_vfs
|
|
endif
|
|
endif
|
|
|
|
ifneq (,$(filter sock_async_event,$(USEMODULE)))
|
|
USEMODULE += sock_async
|
|
USEMODULE += event
|
|
endif
|
|
|
|
ifneq (,$(filter sock_async,$(USEMODULE)))
|
|
ifneq (,$(filter openwsn%,$(USEMODULE)))
|
|
USEMODULE += openwsn_sock_async
|
|
endif
|
|
endif
|
|
|
|
ifneq (,$(filter sock_dns,$(USEMODULE)))
|
|
USEMODULE += dns_msg
|
|
USEMODULE += sock_udp
|
|
USEMODULE += sock_util
|
|
USEMODULE += posix_headers
|
|
endif
|
|
|
|
ifneq (,$(filter sock_dns_mock,$(USEMODULE)))
|
|
USEMODULE += dns
|
|
endif
|
|
|
|
ifneq (,$(filter sock_dodtls,$(USEMODULE)))
|
|
USEMODULE += dns_msg
|
|
USEMODULE += sock_dtls
|
|
USEMODULE += sock_udp
|
|
USEMODULE += sock_util
|
|
USEMODULE += posix_headers
|
|
USEMODULE += ztimer_msec
|
|
endif
|
|
|
|
ifneq (,$(filter dns_cache,$(USEMODULE)))
|
|
USEMODULE += ztimer_msec
|
|
USEMODULE += checksum
|
|
endif
|
|
|
|
ifneq (,$(filter sock_util,$(USEMODULE)))
|
|
USEMODULE += posix_inet
|
|
USEMODULE += fmt
|
|
endif
|
|
|
|
ifneq (,$(filter event_%,$(USEMODULE)))
|
|
USEMODULE += event
|
|
endif
|
|
|
|
ifneq (,$(filter event_thread_%,$(USEMODULE)))
|
|
USEMODULE += event_thread
|
|
endif
|
|
|
|
ifneq (,$(filter event_timeout_ztimer,$(USEMODULE)))
|
|
USEMODULE += ztimer
|
|
endif
|
|
|
|
ifneq (,$(filter event_timeout,$(USEMODULE)))
|
|
USEMODULE += event_timeout_ztimer
|
|
USEMODULE += ztimer_usec
|
|
endif
|
|
|
|
ifneq (,$(filter event,$(USEMODULE)))
|
|
USEMODULE += core_thread_flags
|
|
endif
|
|
|
|
ifneq (,$(filter l2filter_%,$(USEMODULE)))
|
|
USEMODULE += l2filter
|
|
endif
|
|
|
|
ifneq (,$(filter gcoap_fileserver,$(USEMODULE)))
|
|
USEMODULE += gcoap
|
|
USEMODULE += checksum
|
|
USEMODULE += vfs
|
|
endif
|
|
|
|
ifneq (,$(filter gcoap_fileserver_delete,$(USEMODULE)))
|
|
USEMODULE += gcoap_fileserver
|
|
USEMODULE += vfs_util
|
|
endif
|
|
|
|
ifneq (,$(filter gcoap_fileserver_put,$(USEMODULE)))
|
|
USEMODULE += gcoap_fileserver
|
|
endif
|
|
|
|
ifneq (,$(filter gcoap_forward_proxy,$(USEMODULE)))
|
|
USEMODULE += gcoap
|
|
USEMODULE += uri_parser
|
|
endif
|
|
|
|
ifneq (,$(filter gcoap_dtls,$(USEMODULE)))
|
|
USEMODULE += gcoap
|
|
USEMODULE += dsm
|
|
USEMODULE += sock_async_event
|
|
USEMODULE += sock_dtls
|
|
USEMODULE += ztimer_msec
|
|
USEMODULE += ztimer_usec
|
|
USEMODULE += event_thread
|
|
USEMODULE += event_timeout_ztimer
|
|
endif
|
|
|
|
ifneq (,$(filter dsm,$(USEMODULE)))
|
|
USEMODULE += sock_dtls
|
|
USEMODULE += xtimer
|
|
ifneq (,$(filter ztimer_xtimer_compat,$(USEMODULE)))
|
|
# requires 64bit timestamps when using xtimer
|
|
USEMODULE += ztimer64_xtimer_compat
|
|
endif
|
|
endif
|
|
|
|
ifneq (,$(filter gcoap,$(USEMODULE)))
|
|
USEMODULE += nanocoap
|
|
USEMODULE += sock_async_event
|
|
USEMODULE += sock_aux_local
|
|
USEMODULE += sock_udp
|
|
USEMODULE += sock_util
|
|
USEMODULE += ztimer_msec
|
|
USEMODULE += ztimer_usec
|
|
USEMODULE += event_callback
|
|
USEMODULE += event_timeout_ztimer
|
|
USEMODULE += random
|
|
endif
|
|
|
|
ifneq (,$(filter gcoap_dns,$(USEMODULE)))
|
|
USEMODULE += dns_msg
|
|
USEMODULE += gcoap
|
|
USEMODULE += ipv4_addr
|
|
USEMODULE += ipv6_addr
|
|
USEMODULE += uri_parser
|
|
USEMODULE += sock_util
|
|
endif
|
|
|
|
ifneq (,$(filter luid,$(USEMODULE)))
|
|
FEATURES_OPTIONAL += periph_cpuid
|
|
endif
|
|
|
|
ifneq (,$(filter nanocoap_dtls,$(USEMODULE)))
|
|
USEMODULE += sock_dtls
|
|
USEPKG += tinydtls
|
|
endif
|
|
|
|
ifneq (,$(filter nanocoap_sock,$(USEMODULE)))
|
|
USEMODULE += sock_udp
|
|
USEMODULE += sock_util
|
|
USEMODULE += ztimer_msec
|
|
endif
|
|
|
|
ifneq (,$(filter nanocoap_cache,$(USEMODULE)))
|
|
USEMODULE += ztimer_sec
|
|
USEMODULE += hashes
|
|
endif
|
|
|
|
ifneq (,$(filter nanocoap_link_format,$(USEMODULE)))
|
|
USEMODULE += fmt
|
|
endif
|
|
|
|
ifneq (,$(filter nanocoap_vfs,$(USEMODULE)))
|
|
USEMODULE += nanocoap_sock
|
|
USEMODULE += vfs
|
|
endif
|
|
|
|
ifneq (,$(filter nanocoap_%,$(USEMODULE)))
|
|
USEMODULE += nanocoap
|
|
endif
|
|
|
|
ifneq (,$(filter benchmark,$(USEMODULE)))
|
|
USEMODULE += ztimer_usec
|
|
endif
|
|
|
|
ifneq (,$(filter skald_%,$(USEMODULE)))
|
|
USEMODULE += skald
|
|
endif
|
|
|
|
ifneq (,$(filter skald,$(USEMODULE)))
|
|
FEATURES_REQUIRED += radio_nrfble
|
|
FEATURES_OPTIONAL += periph_rtt
|
|
USEMODULE += nrfble
|
|
USEMODULE += random
|
|
USEMODULE += ztimer_msec
|
|
endif
|
|
|
|
ifneq (,$(filter bluetil_addr,$(USEMODULE)))
|
|
USEMODULE += fmt
|
|
endif
|
|
|
|
ifneq (,$(filter cord_common,$(USEMODULE)))
|
|
USEMODULE += fmt
|
|
USEMODULE += luid
|
|
USEMODULE += gcoap
|
|
endif
|
|
|
|
ifneq (,$(filter cord_lc cord_ep,$(USEMODULE)))
|
|
USEMODULE += core_thread_flags
|
|
USEMODULE += cord_common
|
|
ifneq (,$(filter ztimer_xtimer_compat,$(USEMODULE)))
|
|
# requires 64bit timestamps when using xtimer
|
|
USEMODULE += ztimer64_xtimer_compat
|
|
endif
|
|
endif
|
|
|
|
ifneq (,$(filter cord_epsim,$(USEMODULE)))
|
|
USEMODULE += cord_common
|
|
endif
|
|
|
|
ifneq (,$(filter cord_ep_standalone,$(USEMODULE)))
|
|
USEMODULE += cord_ep
|
|
USEMODULE += 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 += usbus_urb
|
|
USEMODULE += netdev_eth
|
|
USEMODULE += luid
|
|
endif
|
|
|
|
ifneq (,$(filter usbus_hid,$(USEMODULE)))
|
|
USEMODULE += isrpipe_read_timeout
|
|
USEMODULE += usbus
|
|
endif
|
|
|
|
ifneq (,$(filter usbus_dfu,$(USEMODULE)))
|
|
FEATURES_REQUIRED += riotboot
|
|
USEMODULE += usbus
|
|
USEMODULE += riotboot_slot
|
|
endif
|
|
|
|
ifneq (,$(filter ut_process,$(USEMODULE)))
|
|
USEMODULE += fmt
|
|
endif
|
|
|
|
ifneq (,$(filter uuid,$(USEMODULE)))
|
|
USEMODULE += hashes
|
|
USEMODULE += random
|
|
USEMODULE += fmt
|
|
endif
|
|
|
|
ifneq (,$(filter riotboot_flashwrite, $(USEMODULE)))
|
|
USEMODULE += riotboot_slot
|
|
FEATURES_REQUIRED += periph_flashpage
|
|
endif
|
|
|
|
ifneq (,$(filter riotboot_slot, $(USEMODULE)))
|
|
USEMODULE += riotboot_hdr
|
|
endif
|
|
|
|
ifneq (,$(filter riotboot_serial, $(USEMODULE)))
|
|
FEATURES_REQUIRED += periph_flashpage
|
|
FEATURES_REQUIRED += periph_uart
|
|
USEMODULE += riotboot_reset
|
|
USEMODULE += checksum
|
|
endif
|
|
|
|
ifneq (,$(filter riotboot_reset, $(USEMODULE)))
|
|
USEMODULE += riotboot
|
|
USEMODULE += usb_board_reset
|
|
endif
|
|
|
|
ifneq (,$(filter riotboot_hdr, $(USEMODULE)))
|
|
USEMODULE += checksum
|
|
USEMODULE += riotboot
|
|
endif
|
|
|
|
ifneq (,$(filter riotboot_usb_dfu, $(USEMODULE)))
|
|
USEMODULE += usbus_dfu
|
|
USEMODULE += riotboot_flashwrite
|
|
USEMODULE += ztimer_sec
|
|
FEATURES_REQUIRED += no_idle_thread
|
|
FEATURES_REQUIRED += periph_pm
|
|
endif
|
|
|
|
ifneq (,$(filter riotboot_tinyusb_dfu, $(USEMODULE)))
|
|
USEPKG += tinyusb
|
|
endif
|
|
|
|
ifneq (,$(filter irq_handler,$(USEMODULE)))
|
|
USEMODULE += event
|
|
endif
|
|
|
|
ifneq (,$(filter sock_dtls, $(USEMODULE)))
|
|
USEMODULE += credman
|
|
USEMODULE += sock_udp
|
|
endif
|
|
|
|
ifneq (,$(filter credman_load, $(USEMODULE)))
|
|
USEPKG += tiny-asn1
|
|
endif
|
|
|
|
ifneq (,$(filter suit,$(USEMODULE)))
|
|
USEPKG += nanocbor
|
|
USEPKG += libcose
|
|
USEMODULE += uuid
|
|
|
|
ifeq (,$(filter libcose_crypt_%,$(USEMODULE)))
|
|
USEMODULE += libcose_crypt_c25519
|
|
endif
|
|
endif
|
|
|
|
ifneq (,$(filter suit_transport_%, $(USEMODULE)))
|
|
USEMODULE += suit_transport
|
|
USEMODULE += suit_transport_worker
|
|
endif
|
|
|
|
ifneq (,$(filter suit_transport_coap, $(USEMODULE)))
|
|
USEMODULE += nanocoap_sock
|
|
USEMODULE += ztimer_msec
|
|
USEMODULE += sock_util
|
|
endif
|
|
|
|
ifneq (,$(filter suit_transport_vfs, $(USEMODULE)))
|
|
USEMODULE += vfs_util
|
|
endif
|
|
|
|
ifneq (,$(filter suit_storage_%, $(USEMODULE)))
|
|
USEMODULE += suit_storage
|
|
endif
|
|
|
|
ifneq (,$(filter suit_storage_flashwrite, $(USEMODULE)))
|
|
FEATURES_REQUIRED += riotboot
|
|
USEMODULE += riotboot_slot
|
|
USEMODULE += riotboot_flashwrite
|
|
USEMODULE += riotboot_flashwrite_verify_sha256
|
|
endif
|
|
|
|
ifneq (,$(filter suit_storage_vfs,$(USEMODULE)))
|
|
USEMODULE += vfs
|
|
USEMODULE += mtd
|
|
endif
|
|
|
|
ifneq (,$(filter suit_%,$(USEMODULE)))
|
|
USEMODULE += suit
|
|
endif
|
|
|
|
ifneq (,$(filter tiny_strerror_as_strerror,$(USEMODULE)))
|
|
USEMODULE += tiny_strerror
|
|
endif
|
|
|
|
# include ztimer dependencies
|
|
ifneq (,$(filter ztimer ztimer_% %ztimer,$(USEMODULE)))
|
|
include $(RIOTBASE)/sys/ztimer/Makefile.dep
|
|
endif
|
|
|
|
# include ztimer64 dependencies
|
|
ifneq (,$(filter ztimer64%,$(USEMODULE)))
|
|
include $(RIOTBASE)/sys/ztimer64/Makefile.dep
|
|
endif
|
|
|
|
ifneq (,$(filter evtimer,$(USEMODULE)))
|
|
ifneq (,$(filter evtimer_on_ztimer,$(USEMODULE)))
|
|
USEMODULE += ztimer_msec
|
|
else
|
|
USEMODULE += xtimer
|
|
ifneq (,$(filter ztimer_xtimer_compat,$(USEMODULE)))
|
|
USEMODULE += evtimer_on_ztimer
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
# handle xtimer's deps. Needs to be done *after* ztimer
|
|
ifneq (,$(filter xtimer,$(USEMODULE)))
|
|
include $(RIOTBASE)/sys/xtimer/Makefile.dep
|
|
endif
|
|
|
|
ifneq (,$(filter devfs_hwrng,$(USEMODULE)))
|
|
FEATURES_REQUIRED += periph_hwrng
|
|
endif
|
|
|
|
ifneq (,$(filter devfs_random,$(USEMODULE)))
|
|
USEMODULE += random
|
|
endif
|
|
|
|
ifneq (,$(filter ecc_%,$(USEMODULE)))
|
|
USEMODULE += ecc
|
|
endif
|
|
|
|
ifneq (,$(filter bhp_%,$(USEMODULE)))
|
|
USEMODULE += bhp
|
|
endif
|
|
|
|
ifneq (,$(filter dbgpin,$(USEMODULE)))
|
|
FEATURES_REQUIRED += periph_gpio
|
|
FEATURES_REQUIRED += dbgpin
|
|
endif
|
|
|
|
ifneq (,$(filter fido2_ctap_%,$(USEMODULE)))
|
|
USEMODULE += fido2_ctap_transport
|
|
USEMODULE += fido2_ctap
|
|
ifneq (,$(filter fido2_ctap_transport_hid,$(USEMODULE)))
|
|
USEMODULE += ztimer64_msec
|
|
USEMODULE += usbus_hid
|
|
DISABLE_MODULE += auto_init_usbus
|
|
endif
|
|
endif
|
|
|
|
ifneq (,$(filter fido2_ctap,$(USEMODULE)))
|
|
FEATURES_REQUIRED += periph_flashpage
|
|
FEATURES_REQUIRED += periph_flashpage_in_address_space
|
|
FEATURES_REQUIRED += periph_gpio_irq
|
|
|
|
USEPKG += tiny-asn1
|
|
USEPKG += tinycbor
|
|
USEPKG += micro-ecc
|
|
|
|
USEMODULE += mtd_flashpage
|
|
USEMODULE += mtd_write_page
|
|
USEMODULE += ztimer_msec
|
|
USEMODULE += event
|
|
USEMODULE += event_timeout_ztimer
|
|
USEMODULE += cipher_modes
|
|
USEMODULE += crypto_aes_256
|
|
USEMODULE += hashes
|
|
USEMODULE += fido2
|
|
endif
|
|
|
|
ifneq (,$(filter rust_riotmodules,$(USEMODULE)))
|
|
include $(RIOTBASE)/sys/rust_riotmodules/Makefile.dep
|
|
endif
|
|
|
|
ifneq (,$(filter auto_init%,$(USEMODULE)))
|
|
USEMODULE += preprocessor_successor
|
|
endif
|
|
|
|
ifneq (,$(filter uri_parser,$(USEMODULE)))
|
|
USEMODULE += fmt
|
|
endif
|
|
|
|
include $(RIOTBASE)/sys/test_utils/Makefile.dep
|