1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/Makefile.dep

1031 lines
23 KiB
Makefile
Raw Normal View History

#
OLD_USEMODULE := $(sort $(USEMODULE))
OLD_USEPKG := $(sort $(USEPKG))
# include board dependencies
-include $(RIOTBOARD)/$(BOARD)/Makefile.dep
2015-09-10 09:15:27 +02:00
# include cpu dependencies
-include $(RIOTCPU)/$(CPU)/Makefile.dep
# include external modules dependencies
# processed before RIOT ones to be evaluated before the 'default' rules.
-include $(EXTERNAL_MODULE_DIRS:%=%/Makefile.dep)
2018-03-12 21:48:24 +01:00
# pull dependencies from sys and drivers
include $(RIOTBASE)/sys/Makefile.dep
include $(RIOTBASE)/drivers/Makefile.dep
ifneq (,$(filter ndn-riot,$(USEPKG)))
USEMODULE += gnrc
USEMODULE += xtimer
USEMODULE += random
USEMODULE += hashes
USEPKG += micro-ecc
endif
2016-06-05 13:14:29 +02:00
ifneq (,$(filter csma_sender,$(USEMODULE)))
2016-06-05 13:11:32 +02:00
USEMODULE += random
USEMODULE += xtimer
endif
ifneq (,$(filter gnrc_mac,$(USEMODULE)))
USEMODULE += gnrc_priority_pktqueue
USEMODULE += csma_sender
USEMODULE += evtimer
endif
2016-06-05 13:11:32 +02:00
ifneq (,$(filter gnrc_gomach,$(USEMODULE)))
USEMODULE += gnrc_netif
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
USEMODULE += netdev_layer
USEMODULE += gnrc_neterr
endif
2015-09-17 03:11:53 +02:00
ifneq (,$(filter nhdp,$(USEMODULE)))
2017-04-26 14:41:45 +02:00
USEMODULE += sock_udp
USEMODULE += xtimer
2015-09-17 03:11:53 +02:00
USEMODULE += oonf_rfc5444
endif
2016-10-29 16:59:00 +02:00
ifneq (,$(filter sntp,$(USEMODULE)))
USEMODULE += gnrc_sock_udp
USEMODULE += xtimer
endif
ifneq (,$(filter gnrc_netdev_default,$(USEMODULE)))
USEMODULE += netdev_default
2017-11-16 18:06:46 +01:00
USEMODULE += gnrc_netif
endif
ifneq (,$(filter netdev_ieee802154,$(USEMODULE)))
USEMODULE += ieee802154
USEMODULE += random
endif
ifneq (,$(filter gnrc_uhcpc,$(USEMODULE)))
USEMODULE += uhcpc
USEMODULE += gnrc_sock_udp
USEMODULE += fmt
endif
ifneq (,$(filter uhcpc,$(USEMODULE)))
USEMODULE += posix_inet
endif
ifneq (,$(filter nordic_softdevice_ble,$(USEPKG)))
FEATURES_REQUIRED += ble_nordic_softdevice
USEMODULE += softdevice_handler
USEMODULE += ble_common
USEMODULE += ble_6lowpan
USEMODULE += gnrc_sixlowpan
USEMODULE += gnrc_sixlowpan_iphc
USEMODULE += gnrc_ipv6_nib_6ln
USEMODULE += gnrc_ipv6_default
# prevent application from being a router
# TODO: maybe find a nicer solution in future build system update
_ROUTER_MODULES = gnrc_ipv6_router% gnrc_rpl netstats_rpl auto_init_gnrc_rpl
ifneq (,$(filter $(_ROUTER_MODULES),$(USEMODULE)))
$(warning nordic_softdevice_ble: Disabling router modules:\
$(filter $(_ROUTER_MODULES),$(USEMODULE)))
endif
USEMODULE := $(filter-out $(_ROUTER_MODULES),$(USEMODULE))
endif
ifneq (,$(filter gnrc_%,$(filter-out gnrc_netapi gnrc_netreg gnrc_netif% gnrc_pkt%,$(USEMODULE))))
2015-08-10 02:41:08 +02:00
USEMODULE += gnrc
endif
ifneq (,$(filter gnrc_sock_%,$(USEMODULE)))
USEMODULE += gnrc_sock
endif
2016-10-27 12:04:35 +02:00
ifneq (,$(filter gnrc_sock_ip,$(USEMODULE)))
USEMODULE += sock_ip
endif
ifneq (,$(filter gnrc_sock_udp,$(USEMODULE)))
USEMODULE += gnrc_udp
USEMODULE += random # to generate random ports
2016-10-27 12:04:35 +02:00
USEMODULE += sock_udp
endif
ifneq (,$(filter gnrc_sock,$(USEMODULE)))
USEMODULE += gnrc_netapi_mbox
2016-10-27 12:04:35 +02:00
USEMODULE += sock
endif
2016-06-07 13:31:32 +02:00
ifneq (,$(filter gnrc_netapi_mbox,$(USEMODULE)))
USEMODULE += core_mbox
endif
ifneq (,$(filter netdev_tap,$(USEMODULE)))
2015-09-11 16:28:31 +02:00
USEMODULE += netif
USEMODULE += netdev_eth
USEMODULE += iolist
endif
ifneq (,$(filter gnrc_tftp,$(USEMODULE)))
USEMODULE += gnrc_udp
USEMODULE += xtimer
endif
2015-08-23 14:25:39 +02:00
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 gnrc_netif,$(USEMODULE)))
USEMODULE += netif
USEMODULE += l2util
USEMODULE += fmt
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
drivers/cc110x: Rewrite of the cc110x driver The cc110x driver has been re-written from scratch to overcome the limitations of the old driver. The main motivation of the rewrite was to achieve better maintainability by a detailed documentation, reduce the complexity and the overhead of the SPI communication with the device, and to allow to simultaneously use transceivers with different configuration regarding the used base band, the channel bandwidth, the modulation rate, and the channel map. Features of this driver include: - Support for the CC1100, CC1101, and the CC1100e sub-gigahertz transceivers. - Detailed documentation of every aspect of this driver. - An easy to use configuration API that allows setting the transceiver configuration (modulation rate, channel bandwidth, base frequency) and the channel map. - Fast channel hopping by pre-calibration of the channels during device configuration (so that no calibration is needed during hopping). - Simplified SPI communication: Only during start-up the MCU has to wait for the transceiver to be ready (for the power regulators and the crystal to stabilize). The old driver did this for every SPI transfer, which resulted in complex communication code. This driver will wait on start up for the transceiver to power up and then use RIOT's SPI API like every other driver. (Not only the data sheet states that this is fine, it also proved to be reliable in practise.) - Greatly reduced latency: The RTT on the old driver (@150 kbps data rate) was about 16ms, the new driver (@250 kbps data rate) has as RTT of ~3ms (depending on SPI clock and on CPU performance) (measured with ping6). - Increased reliability: The preamble size and the sync word size have been doubled compared to the old driver (preamble: 8 bytes instead of 4, sync word: 4 byte instead of 2). The new values are the once recommended by the data sheet for reliable communication. - Basic diagnostic during driver initialization to detect common issues as SPI communication issues and GDO pin configuration/wiring issues. - TX power configuration with netdev_driver_t::set() API-integration - Calls to netdev_driver_t::send() block until the transmission has completed to ease the use of the API (implemented without busy waiting, so that the MCU can enter lower power states or other threads can be executed).
2018-11-08 17:37:07 +01:00
ifneq (,$(filter ieee802154 nrfmin esp_now cc110x gnrc_sixloenc,$(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
2015-11-15 20:59:19 +01:00
ifneq (,$(filter lwip%, $(USEMODULE)))
USEMODULE += lwip_sixlowpan
endif
endif
ifneq (,$(filter gnrc_sixlowpan_default,$(USEMODULE)))
USEMODULE += gnrc_ipv6_default
2017-07-31 17:51:20 +02:00
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_router_default
2017-07-31 17:51:20 +02:00
USEMODULE += gnrc_ipv6_nib_6lr
USEMODULE += gnrc_sixlowpan_router
USEMODULE += gnrc_sixlowpan_frag
USEMODULE += gnrc_sixlowpan_iphc
endif
ifneq (,$(filter gnrc_sixlowpan_border_router_default,$(USEMODULE)))
2017-07-31 17:51:20 +02:00
USEMODULE += gnrc_ipv6_nib_6lbr
USEMODULE += gnrc_ipv6_router_default
USEMODULE += gnrc_sixlowpan_router
USEMODULE += gnrc_sixlowpan_frag
USEMODULE += gnrc_sixlowpan_iphc
endif
ifneq (,$(filter gnrc_sixlowpan_router,$(USEMODULE)))
2017-07-31 17:51:20 +02:00
USEMODULE += gnrc_ipv6_router
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
2016-04-27 08:22:41 +02:00
USEMODULE += gnrc_sixlowpan_iphc_nhc
endif
ifneq (,$(filter gnrc_sixlowpan,$(USEMODULE)))
USEMODULE += sixlowpan
2015-03-16 17:52:19 +01:00
endif
ifneq (,$(filter gnrc_sixlowpan_ctx,$(USEMODULE)))
2015-08-10 00:26:36 +02:00
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
2015-08-31 14:25:17 +02:00
endif
ifneq (,$(filter gnrc_ndp,$(USEMODULE)))
USEMODULE += gnrc_icmpv6
2017-11-16 18:06:46 +01:00
USEMODULE += gnrc_netif
endif
ifneq (,$(filter gnrc_icmpv6_echo,$(USEMODULE)))
USEMODULE += gnrc_icmpv6
2015-04-01 17:35:23 +02:00
endif
2015-06-10 04:02:10 +02:00
ifneq (,$(filter gnrc_icmpv6_error,$(USEMODULE)))
USEMODULE += gnrc_icmpv6
endif
ifneq (,$(filter gnrc_icmpv6,$(USEMODULE)))
2015-08-07 14:56:36 +02:00
USEMODULE += inet_csum
USEMODULE += gnrc_ipv6
2017-01-27 16:13:56 +01:00
USEMODULE += icmpv6
2015-03-07 20:37:45 +01:00
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_rh,$(USEMODULE)))
USEMODULE += gnrc_ipv6_ext
endif
ifneq (,$(filter gnrc_ipv6_ext,$(USEMODULE)))
USEMODULE += gnrc_ipv6
endif
2015-09-28 14:40:35 +02:00
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
2015-03-03 22:20:21 +01:00
endif
ifneq (,$(filter gnrc_ipv6,$(USEMODULE)))
2015-08-07 14:56:36 +02:00
USEMODULE += inet_csum
2015-08-10 00:26:36 +02:00
USEMODULE += ipv6_addr
USEMODULE += gnrc_ipv6_hdr
2017-07-31 17:51:20 +02:00
USEMODULE += gnrc_ipv6_nib
2017-11-16 18:06:46 +01:00
USEMODULE += gnrc_netif
2015-03-03 22:20:21 +01:00
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
2015-12-18 20:59:58 +01:00
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)))
USEMODULE += evtimer
2017-11-17 10:25:17 +01:00
USEMODULE += gnrc_ndp
USEMODULE += gnrc_netif
USEMODULE += ipv6_addr
USEMODULE += random
ifneq (,$(filter sock_dns,$(USEMODULE)))
USEMODULE += gnrc_ipv6_nib_dns
endif
endif
ifneq (,$(filter gnrc_udp,$(USEMODULE)))
2015-08-07 14:56:36 +02:00
USEMODULE += inet_csum
2015-08-10 03:16:53 +02:00
USEMODULE += udp
2015-04-24 15:06:14 +02:00
endif
2016-02-04 14:37:35 +01:00
ifneq (,$(filter gnrc_tcp,$(USEMODULE)))
USEMODULE += inet_csum
USEMODULE += random
2017-02-07 13:41:32 +01:00
USEMODULE += tcp
2016-02-04 14:37:35 +01:00
USEMODULE += xtimer
USEMODULE += core_mbox
2016-02-04 14:37:35 +01:00
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
2015-03-21 11:47:25 +01:00
endif
2015-03-22 18:42:34 +01:00
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
2019-01-09 23:06:29 +01:00
ifeq (,$(filter stdio_cdc_acm stdio_null stdio_rtt,$(USEMODULE)))
2018-07-05 14:04:17 +02:00
USEMODULE += stdio_uart
endif
endif
2015-08-17 13:48:08 +02:00
ifneq (,$(filter posix_sockets,$(USEMODULE)))
2016-10-13 23:19:27 +02:00
USEMODULE += bitfield
2015-08-17 13:48:08 +02:00
USEMODULE += random
USEMODULE += vfs
USEMODULE += posix_headers
USEMODULE += xtimer
2015-08-17 13:48:08 +02:00
endif
ifneq (,$(filter stdio_cdc_acm,$(USEMODULE)))
USEMODULE += usbus_cdc_acm
USEMODULE += isrpipe
endif
2018-07-05 14:07:17 +02:00
ifneq (,$(filter stdio_rtt,$(USEMODULE)))
USEMODULE += xtimer
endif
2017-11-09 10:03:06 +01:00
ifneq (,$(filter shell,$(USEMODULE)))
2019-05-28 20:30:30 +02:00
USEMODULE += stdin
endif
ifneq (,$(filter stdio_ethos,$(USEMODULE)))
USEMODULE += ethos
USEMODULE += stdin
USEMODULE += stdio_uart
endif
2019-05-28 20:30:30 +02:00
ifneq (,$(filter stdin,$(USEMODULE)))
2017-11-09 10:03:06 +01:00
ifneq (,$(filter stdio_uart,$(USEMODULE)))
USEMODULE += stdio_uart_rx
endif
endif
ifneq (,$(filter stdio_uart_rx,$(USEMODULE)))
2016-12-07 20:33:23 +01:00
USEMODULE += isrpipe
2017-11-09 10:03:06 +01:00
USEMODULE += stdio_uart
endif
ifneq (,$(filter stdio_uart,$(USEMODULE)))
FEATURES_REQUIRED += periph_uart
endif
2016-12-07 20:32:00 +01:00
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
endif
2013-09-30 15:48:35 +02:00
endif
ifneq (,$(filter posix_semaphore,$(USEMODULE)))
USEMODULE += sema
2015-10-25 15:53:26 +01:00
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
2015-11-15 20:59:19 +01:00
ifneq (,$(filter lwip_sixlowpan,$(USEMODULE)))
USEMODULE += lwip_ipv6_autoconfig
USEMODULE += l2util
2015-11-15 20:59:19 +01:00
endif
ifneq (,$(filter lwip_ipv6_autoconfig lwip_ipv6_mld,$(USEMODULE)))
2015-11-15 20:59:19 +01:00
USEMODULE += lwip_ipv6
endif
ifneq (,$(filter lwip_ipv6,$(USEMODULE)))
USEMODULE += random
endif
ifneq (,$(filter lwip_udplite,$(USEMODULE)))
USEMODULE += lwip_udp
endif
2016-09-02 19:03:35 +02:00
ifneq (,$(filter lwip_sock_%,$(USEMODULE)))
USEMODULE += lwip_sock
endif
ifneq (,$(filter lwip_sock_ip,$(USEMODULE)))
USEMODULE += lwip_raw
USEMODULE += sock_ip
2016-09-02 19:03:35 +02:00
endif
2016-09-02 19:03:35 +02:00
ifneq (,$(filter lwip_sock_tcp,$(USEMODULE)))
USEMODULE += lwip_tcp
USEMODULE += sock_tcp
2016-09-02 19:03:35 +02:00
endif
2016-09-02 19:03:35 +02:00
ifneq (,$(filter lwip_sock_udp,$(USEMODULE)))
USEMODULE += lwip_udp
USEMODULE += sock_udp
2016-09-02 19:03:35 +02:00
endif
2015-11-15 20:59:19 +01:00
ifneq (,$(filter lwip_%,$(USEMODULE)))
2015-08-03 22:30:46 +02:00
USEPKG += lwip
2016-09-02 14:56:19 +02:00
USEMODULE += core_mbox
2015-11-15 20:59:19 +01:00
USEMODULE += lwip_api
2015-11-15 20:58:39 +01:00
USEMODULE += lwip_contrib
2015-08-03 22:30:46 +02:00
USEMODULE += lwip_core
2015-11-15 20:59:19 +01:00
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
2015-11-15 20:59:19 +01:00
endif
ifneq (,$(filter lwip_ppp,$(USEMODULE)))
USEMODULE += lwip_polarssl
2015-08-03 22:30:46 +02:00
endif
2015-11-15 20:58:39 +01:00
ifneq (,$(filter lwip_contrib,$(USEMODULE)))
USEMODULE += sema
2016-09-02 19:03:35 +02:00
USEMODULE += xtimer
2015-11-15 20:58:39 +01:00
endif
ifneq (,$(filter sema,$(USEMODULE)))
2015-10-25 15:44:42 +01:00
USEMODULE += xtimer
endif
2013-12-20 15:23:09 +01:00
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
2015-09-08 13:44:52 +02:00
USEMODULE += xtimer
USEMODULE += posix_headers
endif
2015-04-09 17:36:39 +02:00
2015-09-17 12:04:35 +02:00
ifneq (,$(filter oonf_rfc5444,$(USEMODULE)))
USEMODULE += oonf_common
endif
2015-04-09 17:36:39 +02:00
ifneq (,$(filter oonf_common,$(USEMODULE)))
USEPKG += oonf_api
2015-09-17 12:04:35 +02:00
USEMODULE += posix_sockets
2015-04-09 17:36:39 +02:00
endif
2015-02-25 16:31:03 +01:00
# 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
ifeq (gnrc_pktbuf_cmd,$(filter gnrc_pktbuf_%, $(USEMODULE)))
USEMODULE += gnrc_pktbuf_static
endif
2016-02-11 00:45:25 +01:00
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 netstats_%, $(USEMODULE)))
USEMODULE += netstats
endif
ifneq (,$(filter gnrc_lwmac,$(USEMODULE)))
2017-11-16 18:06:46 +01:00
USEMODULE += gnrc_netif
USEMODULE += gnrc_mac
FEATURES_REQUIRED += periph_rtt
endif
2015-09-09 18:32:54 +02:00
ifneq (,$(filter pthread,$(USEMODULE)))
USEMODULE += xtimer
USEMODULE += timex
2015-09-09 18:32:54 +02:00
endif
ifneq (,$(filter schedstatistics,$(USEMODULE)))
USEMODULE += xtimer
USEMODULE += sched_cb
endif
ifneq (,$(filter arduino,$(USEMODULE)))
FEATURES_REQUIRED += arduino
FEATURES_OPTIONAL += arduino_pwm
2019-10-08 10:26:23 +02:00
FEATURES_OPTIONAL += periph_adc
FEATURES_REQUIRED += periph_gpio
USEMODULE += xtimer
endif
ifneq (,$(filter arduino_pwm,$(FEATURES_USED)))
FEATURES_REQUIRED += periph_pwm
endif
ifneq (,$(filter xtimer,$(USEMODULE)))
FEATURES_REQUIRED += periph_timer
USEMODULE += div
endif
ifneq (,$(filter saul,$(USEMODULE)))
USEMODULE += phydat
endif
ifneq (,$(filter saul_reg,$(USEMODULE)))
USEMODULE += saul
endif
ifneq (,$(filter saul_default,$(USEMODULE)))
USEMODULE += saul
USEMODULE += saul_reg
USEMODULE += auto_init_saul
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
2016-04-11 21:05:08 +02:00
ifneq (,$(filter evtimer,$(USEMODULE)))
USEMODULE += xtimer
endif
ifneq (,$(filter can_linux,$(USEMODULE)))
LINKFLAGS += -lsocketcan
endif
ifneq (,$(filter can,$(USEMODULE)))
USEMODULE += can_raw
2016-11-23 19:05:35 +01:00
USEMODULE += auto_init_can
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
2015-11-27 13:42:40 +01:00
ifneq (,$(filter random,$(USEMODULE)))
USEMODULE += prng
# select default prng
ifeq (,$(filter prng_%,$(USEMODULE)))
USEMODULE += prng_tinymt32
endif
2015-11-27 13:42:40 +01:00
2018-03-12 21:48:24 +01:00
ifneq (,$(filter prng_fortuna,$(USEMODULE)))
USEMODULE += fortuna
USEMODULE += hashes
USEMODULE += crypto
USEMODULE += xtimer
endif
ifneq (,$(filter prng_tinymt32,$(USEMODULE)))
USEMODULE += tinymt32
endif
2018-06-19 18:42:25 +02:00
ifneq (,$(filter prng_sha1prng,$(USEMODULE)))
USEMODULE += hashes
endif
ifeq (,$(filter puf_sram,$(USEMODULE)))
FEATURES_OPTIONAL += periph_hwrng
endif
USEMODULE += luid
2015-11-27 13:42:40 +01:00
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
2016-08-30 10:27:14 +02:00
ifneq (,$(filter vfs,$(USEMODULE)))
USEMODULE += posix_headers
ifeq (native, $(BOARD))
USEMODULE += native_vfs
endif
2016-08-30 10:27:14 +02:00
endif
ifneq (,$(filter sock_dns,$(USEMODULE)))
USEMODULE += sock_util
USEMODULE += posix_headers
endif
ifneq (,$(filter sock_util,$(USEMODULE)))
USEMODULE += posix_inet
2018-06-13 16:16:48 +02:00
USEMODULE += fmt
USEMODULE += sock_udp
endif
ifneq (,$(filter event_%,$(USEMODULE)))
USEMODULE += event
endif
ifneq (,$(filter event_timeout,$(USEMODULE)))
USEMODULE += xtimer
endif
ifneq (,$(filter event,$(USEMODULE)))
USEMODULE += core_thread_flags
endif
ifneq (,$(filter spiffs,$(USEMODULE)))
USEPKG += spiffs
USEMODULE += vfs
USEMODULE += spiffs_fs
USEMODULE += mtd
endif
ifneq (,$(filter littlefs,$(USEMODULE)))
USEPKG += littlefs
USEMODULE += vfs
USEMODULE += littlefs_fs
USEMODULE += mtd
endif
ifneq (,$(filter l2filter_%,$(USEMODULE)))
USEMODULE += l2filter
endif
ifneq (,$(filter gcoap,$(USEMODULE)))
2017-11-29 14:06:28 +01:00
USEMODULE += nanocoap
USEMODULE += gnrc_sock_udp
2018-09-07 12:03:19 +02:00
USEMODULE += sock_util
endif
ifneq (,$(filter luid,$(USEMODULE)))
FEATURES_OPTIONAL += periph_cpuid
endif
2017-11-29 14:06:28 +01:00
ifneq (,$(filter nanocoap_%,$(USEMODULE)))
USEMODULE += nanocoap
endif
2017-05-12 17:46:09 +02:00
ifneq (,$(filter fatfs_vfs,$(USEMODULE)))
USEPKG += fatfs
USEMODULE += vfs
2017-05-12 17:46:09 +02:00
endif
2017-12-20 11:32:16 +01:00
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
2017-07-25 15:12:39 +02:00
ifneq (,$(filter bluetil_addr,$(USEMODULE)))
USEMODULE += fmt
endif
ifneq (,$(filter nimble_%,$(USEMODULE)))
USEPKG += nimble
endif
2018-10-15 10:44:32 +02:00
ifneq (,$(filter cord_epsim,$(USEMODULE)))
USEMODULE += cord_common
2018-10-15 10:44:32 +02:00
USEMODULE += gcoap
endif
2018-10-15 11:19:06 +02:00
ifneq (,$(filter cord_ep_standalone,$(USEMODULE)))
USEMODULE += cord_ep
USEMODULE += xtimer
endif
2018-10-15 11:19:06 +02:00
ifneq (,$(filter cord_ep,$(USEMODULE)))
USEMODULE += cord_common
USEMODULE += core_thread_flags
USEMODULE += gcoap
ifneq (,$(filter shell_commands,$(USEMODULE)))
USEMODULE += sock_util
endif
endif
ifneq (,$(filter cord_common,$(USEMODULE)))
2017-07-25 15:12:39 +02:00
USEMODULE += fmt
USEMODULE += luid
2017-07-25 15:12:39 +02:00
endif
ifneq (,$(filter tlsf-malloc,$(USEMODULE)))
USEPKG += tlsf
endif
ifneq (,$(filter usbus,$(USEMODULE)))
FEATURES_REQUIRED += periph_usbdev
USEMODULE += core_thread_flags
USEMODULE += event
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
2018-08-23 14:00:44 +02:00
USEMODULE += fmt
endif
2019-03-11 14:28:17 +01:00
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
2019-06-05 10:54:25 +02:00
ifneq (,$(filter tinydtls_sock_dtls, $(USEMODULE)))
USEPKG += tinydtls
USEMODULE += sock_dtls
endif
ifneq (,$(filter sock_dtls, $(USEMODULE)))
USEMODULE += credman
USEMODULE += sock_udp
endif
ifneq (,$(filter suit_v4_%,$(USEMODULE)))
USEMODULE += suit_v4
endif
ifneq (,$(filter suit_v4,$(USEMODULE)))
USEPKG += nanocbor
USEPKG += libcose
2019-10-16 09:53:46 +02:00
USEMODULE += libcose_crypt_c25519
USEMODULE += suit_conditions
# 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
ifneq (,$(filter suit_conditions,$(USEMODULE)))
USEMODULE += uuid
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
# Enable periph_gpio when periph_gpio_irq is enabled
ifneq (,$(filter periph_gpio_irq,$(USEMODULE)))
FEATURES_REQUIRED += periph_gpio
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
# always select power management if available
FEATURES_OPTIONAL += periph_pm
# include package dependencies
-include $(USEPKG:%=$(RIOTPKG)/%/Makefile.dep)
2018-05-04 15:44:29 +02:00
# always select provided architecture features
FEATURES_REQUIRED += $(filter arch_%,$(FEATURES_PROVIDED))
# all periph features correspond to a periph submodule
# FEATURES_USED is defined in Makefile.features
USEMODULE += $(filter periph_%,$(FEATURES_USED))
# select cpu_check_address pseudomodule if the corresponding feature is used
USEMODULE += $(filter cpu_check_address, $(FEATURES_USED))
# include periph_common if any periph_* driver is used
ifneq (,$(filter periph_%, $(USEMODULE)))
USEMODULE += periph_common
endif
# recursively catch transitive dependencies
USEMODULE := $(sort $(USEMODULE))
USEPKG := $(sort $(USEPKG))
ifneq ($(OLD_USEMODULE) $(OLD_USEPKG),$(USEMODULE) $(USEPKG))
include $(RIOTBASE)/Makefile.dep
endif
ifneq (,$(filter ecc_%,$(USEMODULE)))
USEMODULE += ecc
endif