forked from RIOT-OS/RIOT
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Makefile.features
42 lines (32 loc) · 1.39 KB
/
Makefile.features
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# Process provided FEATURES
#
# The board/board common are responsible for defining the CPU and CPU_MODEL
# variables in their Makefile.features.
# This makes them available when setting features based on CPU_MODEL in the cpu
# Makefile.features and also during dependency resolution.
# Transition:
# Moving 'CPU/CPU_MODEL' to Makefile.features is an ongoing work and may not
# reflect the state of all boards for the moment.
include $(BOARDDIR)/Makefile.features
# Sanity check
ifeq (,$(CPU))
$(error $(BOARD): CPU must be defined by board / board_common Makefile.features)
endif
include $(RIOTCPU)/$(CPU)/Makefile.features
# Provide CPU as a feature to allow listing all boards with a CPU
FEATURES_PROVIDED += cpu_$(CPU)
# Features that are conflicting for all architectures
FEATURES_CONFLICT += picolibc:newlib
FEATURES_CONFLICT_MSG += "Only one standard C library can be used."
FEATURES_CONFLICT += periph_gpio_irq:periph_gpio_ll_irq
FEATURES_CONFLICT_MSG += "Only one GPIO IRQ implementation can be used."
FEATURES_CONFLICT += periph_usbdev:tinyusb_device
FEATURES_CONFLICT += periph_usbdev:tinyusb_host
FEATURES_CONFLICT_MSG += "Package tinyUSB is not yet compatible with periph_usbdev."
# Features provided implicitly
ifneq (,$(filter periph_eth,$(FEATURES_PROVIDED)))
FEATURES_PROVIDED += netif_ethernet
endif
ifneq (,$(filter netif_%,$(FEATURES_PROVIDED)))
FEATURES_PROVIDED += netif
endif