[riot-commits] [RIOT-OS/RIOT] 162850: make: Implement optional features

Ludwig Ortmann ludwig.ortmann at fu-berlin.de
Tue Oct 28 16:24:00 CET 2014


  Branch: refs/heads/master
  Home:   https://github.com/RIOT-OS/RIOT
  Commit: 162850b332acdce6d68d010f3aa0c8beb03ec5ca
      https://github.com/RIOT-OS/RIOT/commit/162850b332acdce6d68d010f3aa0c8beb03ec5ca
  Author: René Kijewski <rene.kijewski at fu-berlin.de>
  Date:   2014-10-26 (Sun, 26 Oct 2014)

  Changed paths:
    M Makefile.buildtests
    M Makefile.include
    M examples/default/Makefile

  Log Message:
  -----------
  make: Implement optional features

Fixes #1876

This PR introduces `FEATURES_OPTIONAL` which can be used to tell the
Make system, that the application would like to use some feature, but
the build should proceed even if the selected board cannot provide the
optional feature.

`make buildtest` and `make info-supported-boards` heed this variable
when examining the list of supported boards.

If a word is present in `FEATURES_REQUIRED` and `FEATURES_OPTIONAL`,
then `FEATURES_OPTIONAL` takes precedence.


  Commit: 938d7d441b8c8bccb0c71eeba1b6112fe930cead
      https://github.com/RIOT-OS/RIOT/commit/938d7d441b8c8bccb0c71eeba1b6112fe930cead
  Author: René Kijewski <rene.kijewski at fu-berlin.de>
  Date:   2014-10-26 (Sun, 26 Oct 2014)

  Changed paths:
    M Makefile.modules

  Log Message:
  -----------
  make: expose used features with `-DFEATURE_ABC`

All used feature requests (both in `FEATURES_REQUIRED` and
`FEATURES_OPTIONAL`) that could be satisfied get exposed to C with
`-DFEATURE_ABC`.


  Commit: 765c88d08abe71259f3810356d01c96597a3b657
      https://github.com/RIOT-OS/RIOT/commit/765c88d08abe71259f3810356d01c96597a3b657
  Author: René Kijewski <rene.kijewski at fu-berlin.de>
  Date:   2014-10-26 (Sun, 26 Oct 2014)

  Changed paths:
    M Makefile.buildtests
    M Makefile.include
    M boards/arduino-due/Makefile.features
    M boards/arduino-mega2560/Makefile.features
    M boards/avsextrem/Makefile.features
    M boards/cc2538dk/Makefile.features
    M boards/iot-lab_M3/Makefile.features
    M boards/msb-430h/Makefile.features
    M boards/msba2/Makefile.features
    M boards/msbiot/Makefile.features
    M boards/native/Makefile.features
    M boards/openmote/Makefile.features
    M boards/pca10000/Makefile.features
    M boards/pca10005/Makefile.features
    M boards/pttu/Makefile.features
    M boards/redbee-econotag/Makefile.features
    M boards/samr21-xpro/Makefile.features
    M boards/stm32f0discovery/Makefile.features
    M boards/stm32f3discovery/Makefile.features
    M boards/stm32f4discovery/Makefile.features
    M boards/telosb/Makefile.features
    M boards/udoo/Makefile.features
    M boards/wsn430-v1_3b/Makefile.features
    M boards/wsn430-v1_4/Makefile.features
    M boards/yunjia-nrf51822/Makefile.features
    M boards/z1/Makefile.features

  Log Message:
  -----------
  make: allow drivers to implement features

This change allows drivers (or any module for that matter) to provide
features. This is e.g. useful if a board does not have a transceiver,
but your application uses `USEMODULE += some_driver`, which implements
the transceiver interface.

The line `FEATURES_PROVIDED += some_feature` should go to the guarded
block in `{sys,drivers}/Makefile.include`.


  Commit: 1fc5bd46a2a37b47e57c01d89f2808c3a7c75ec0
      https://github.com/RIOT-OS/RIOT/commit/1fc5bd46a2a37b47e57c01d89f2808c3a7c75ec0
  Author: Ludwig Ortmann <ludwig.ortmann at fu-berlin.de>
  Date:   2014-10-28 (Tue, 28 Oct 2014)

  Changed paths:
    M Makefile.buildtests
    M Makefile.include
    M Makefile.modules
    M boards/arduino-due/Makefile.features
    M boards/arduino-mega2560/Makefile.features
    M boards/avsextrem/Makefile.features
    M boards/cc2538dk/Makefile.features
    M boards/iot-lab_M3/Makefile.features
    M boards/msb-430h/Makefile.features
    M boards/msba2/Makefile.features
    M boards/msbiot/Makefile.features
    M boards/native/Makefile.features
    M boards/openmote/Makefile.features
    M boards/pca10000/Makefile.features
    M boards/pca10005/Makefile.features
    M boards/pttu/Makefile.features
    M boards/redbee-econotag/Makefile.features
    M boards/samr21-xpro/Makefile.features
    M boards/stm32f0discovery/Makefile.features
    M boards/stm32f3discovery/Makefile.features
    M boards/stm32f4discovery/Makefile.features
    M boards/telosb/Makefile.features
    M boards/udoo/Makefile.features
    M boards/wsn430-v1_3b/Makefile.features
    M boards/wsn430-v1_4/Makefile.features
    M boards/yunjia-nrf51822/Makefile.features
    M boards/z1/Makefile.features
    M examples/default/Makefile

  Log Message:
  -----------
  Merge pull request #1879 from Kijewski/issue-1876

make: fix `FEATURES_REQUIRED` and `FEATURES_PROVIDED` a bit


Compare: https://github.com/RIOT-OS/RIOT/compare/37d8cabbe830...1fc5bd46a2a3


More information about the commits mailing list