mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
f49bd3e660
Please see #1715. Closes #1715. This PR implements the new Makefile variables "FEATURES_PROVIDED" and "FEATURES_REQUIRED". A board *can* have a new file `Makefile.features` which looks like: ```make FEATURES_PROVIDED = transceiver ``` An application can have a corresponding line ```make FEATURES_REQUIRED = transceiver ``` If the selected BOARD does not fulfil the requirements of the application, then a *warning* is issued at compile time. This change only includes the feature "transceiver", further features are expected to be listed in further PRs. The requirement "transceiver" is automatically added if the application uses the module "defaulttransceiver". `make buildtest` understands the new feature listing, so the user won't need to add boards to `BOARD_BLACKLIST` manually. Part of the change are the added Make targets * `info-features-missing`, which prints the required features `\setminus` the provided features. The output is empty if there are no features missing. * `info-boards-features-missing`, the same as `info-features-missing` but as a table for all boards, but heeded `BOARD_WHITELIST` and `BOARD_BLACKLIST`. Applications don't have to use this new feature. This change does not break existing Makefile.
40 lines
1.1 KiB
Makefile
40 lines
1.1 KiB
Makefile
# name of your application
|
|
APPLICATION = ccn-lite-relay
|
|
|
|
# If no BOARD is found in the environment, use this default:
|
|
BOARD ?= native
|
|
|
|
# This has to be the absolute path to the RIOT base directory:
|
|
RIOTBASE ?= $(CURDIR)/../..
|
|
|
|
# Uncomment these lines if you want to use platform support from external
|
|
# repositories:
|
|
#RIOTCPU ?= $(CURDIR)/../../RIOT/thirdparty_cpu
|
|
#RIOTBOARD ?= $(CURDIR)/../../RIOT/thirdparty_boards
|
|
|
|
# Uncomment this to enable scheduler statistics for ps:
|
|
#CFLAGS += -DSCHEDSTATISTICS
|
|
|
|
# If you want to use native with valgrind, you should recompile native
|
|
# with the target all-valgrind instead of all:
|
|
# make -B clean all-valgrind
|
|
|
|
# Comment this out to disable code in RIOT that does safety checking
|
|
# which is not needed in a production environment but helps in the
|
|
# development process:
|
|
CFLAGS += -DDEVELHELP
|
|
|
|
# Change this to 0 show compiler invocation lines by default:
|
|
QUIET ?= 1
|
|
|
|
BOARD_INSUFFICIENT_RAM := chronos msb-430h telosb wsn430-v1_3b wsn430-v1_4 z1 redbee-econotag
|
|
|
|
# Modules to include:
|
|
|
|
USEMODULE += posix
|
|
|
|
USEMODULE += defaulttransceiver
|
|
USEMODULE += ccn_lite
|
|
|
|
include $(RIOTBASE)/Makefile.include
|