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

425 Commits

Author SHA1 Message Date
Francisco
3d8f71768c
Merge pull request #13846 from benpicco/Makefile-THISDIR
Makefile.include: add $(MAKEFILEDIR) helper and use it
2020-04-21 11:00:52 +02:00
Sören Tempel
24468bead6 fuzzing: Initialize
This adds a new subdirectory called `fuzzing/` which will contain
applications for fuzzing various RIOT network modules in the future.
This subdirectory is heavily inspired by the `examples/` subdirectory.

The fuzzing applications use AFL as a fuzzer. Each application contains
Makefiles, source code, and an input corpus used by AFL to generate
input for fuzzing.
2020-04-17 17:11:15 +02:00
Benjamin Valentin
4db6ce3424 Makefile.include: add $(MAKEFILEDIR) helper and use it
$(MAKEFILEDIR) will always evaluate to the directory of the Makefile
where it's being called (evaluated).

This construct is used elsewhere in RIOT, make it more accessable
by defining a special variable with it.
2020-04-15 11:51:05 +02:00
Marian Buschsieweke
7bc15acee2
build system: Restructure dependency resolution
Goals:
- Untangle dependency resolution and feature checking for better maintainability
- Improve performance of "make info-boards-supported"

Changes:
- Makefile.dep
    - Dropped handling of default modules and recursion
    - Now only dependencies of the current set of used modules and pkgs are
      added
  ==> External recursion is needed to catch transient dependencies
- Changed Makefile.features:
    - Dropped checking of provided features
    - Dropped populating FEATURES_USED with provided features that are required
      or optional
    - Dropped populating FEATURES_MISSING with required but not provided
      features
    - Dropped adding modules implementing used features to USE_MODULE
  ==> This now only populates FEATURES_PROVIDED, nothing more
- Added makefiles/features_check.inc.mk:
    - This performs the population of FEATURES_USED and FEATURES_MISSING now
- Added makefiles/features_modules.inc.mk:
    - This performs now the addition of modules implementing used features
- Added makefiles/dependency_resolution.inc.mk:
    - This now performs the recursion required to catch transient dependencies
    - Also the feature check is performed recursively to handle also required
      and optional features of the transient dependencies
    - DEFAULT_MODULES are added repeatedly to allow it to be extended based on
      used features and modules
      ==> This allows modules to have optional dependencies, as these
          dependencies can be blacklisted
- Use simply expanded variables instead of recursively expended variables
  (`foo := $(bar)` instead `foo = $(bar)`) for internal variables during feature
  resolution. This improves performance significantly for
  `make info-boards-supported`.
- Reduce dependency resolution steps in `make info-boards-supported`
    - Globally resolve dependencies without any features (including arch)
      provided
      ==> This results in the common subset of feature requirements and modules
          used
        - But for individual boards additional modules might be used on top due
          to architecture specific dependencies or optional features
    - Boards not supporting this subset of commonly required features are not
      supported, so no additional dependency resolution is needed for them
    - For each board supporting the common set of requirements a complete
      dependency resolution is still needed to also catch architecture specific
      hacks
         - But this resolution is seeded with the common set of dependencies to
           speed this up
2020-04-02 09:55:07 +02:00
Jose Alamos
e451570219 gnrc_netif: remove GNRC_NETIF_NUMOF macro 2020-03-26 11:12:23 +01:00
Francisco Molina
d4e2bede93
Makefile.include: guard suit.base.inc.mk inclusion 2020-03-23 10:22:03 +01:00
7d0c475113
Merge pull request #13486 from bergzand/pr/suit/ietf_v3
SUIT: Update to draft-ietf-v3
2020-03-20 14:44:29 +01:00
413b91326f
tests/suit_v3_manifest: Add draft-ietf-v3 manifest parser test
Co-authored-by: Kaspar Schleiser <kaspar@schleiser.de>
2020-03-19 22:56:01 +01:00
14bdf8f46b
sys/suit: Add SUIT draft ietf-v3 firmware upgrade module
Co-authored-by: Kaspar Schleiser <kaspar@schleiser.de>
2020-03-18 14:13:12 +01:00
Martine S. Lenders
09c05ff10d
Makefile.include: don't try to reconnect on cleanterm 2020-03-11 14:56:50 +01:00
Cenk Gündoğan
dbd0b21f15 make: disable implicit rules 2020-02-18 12:11:09 +01:00
651518aa2f
Makefile.include: don't export USEMODULE_INCLUDES var 2020-02-05 10:27:58 +01:00
Francisco Molina
e637fd1658 Makefile.include: remove support for make <4 2020-01-28 11:27:30 +01:00
68210feb54
Merge pull request #12972 from fjmolinas/pr_boardsdir_riotboard
Makefile.include: default to RIOTBOARD when BOARD not in BOARDSDIR
2019-12-31 10:51:27 +01:00
Francisco Molina
1f66c0f3ee Makefile.include: RIOTBOARD as BOARDSDIR fallback 2019-12-30 17:12:16 +01:00
70e6e0aedf
Merge pull request #12862 from fjmolinas/pr_dont_reset_sync
dist/pythonlibs/testrunner: reset before term
2019-12-19 14:42:46 +01:00
Francisco Molina
a77594a348 dist/pythonlibs/testrunner: reset before term
For some boards `make reset` is only possible if a serial connection
is not already open or its execution might disrupt it. This
causes some tests to fail since before running a test the board
is reset.

`make reset` is currently used as a synchronization mechanism between
the application and the test script. With `test_utils_interactive_sync`
this is no longer needed so call `make reset` before `cleanterm` instead
of after when `test_utils_interactive_sync` is used.

Allow setting TESTRUNNER_RESET_AFTER_TERM=1 to keep the previous
behaviour for `examples/%/tests`.
2019-12-19 09:32:37 +01:00
Sebastian Meiling
5eee821f6e makefiles: move exports to vars.inc.mk 2019-12-18 10:07:50 +01:00
Gaëtan Harter
418bcfb95d
makefiles: deprecate 'RIOTBOARD' for 'BOARDSDIR'
Replace using 'RIOTBOARD' by 'BOARDSDIR' to define external boards.
2019-12-16 15:35:05 +01:00
Gaëtan Harter
90692ac92b
makefiles: use 'BOARDSDIR' for the boards directory in compilation
Replace uses of 'RIOTBOARD' by 'BOARDSDIR' during the compilation.
2019-12-16 15:35:04 +01:00
Gaëtan Harter
f76a2d201e
Makefile.include: introduce 'BOARDSDIR' for boards directory
Introduce a new variable 'BOARDSDIR' to use when referencing the base
boards directory.

This is a transition to allow defining external boards while still using
the `RIOT/boards` directory for like `boards/common` for example through
'RIOTBOARD'.
2019-12-16 15:35:04 +01:00
Gaëtan Harter
fc84c90f66
Makefile.include: allow directories that cannot be overridden
Allow defining new directory variables that will not be overridden when
set from command line.

Command line is supposed to override from the value in make.
Promoting another behavior is against `make`.
2019-12-16 15:35:03 +01:00
Leandro Lanzieri
1655001d85 makefiles: Add Kconfig related targets and dependencies
- The autoconf.h header file, generated with the current Kconfig
  configurations, is added as a build dependency.

- autoconf.h depends on the proper tool (genconfig) and a Kconfig.dep
  which contains the dependencies for the given application and board,
  this is generated from $(USEMODULE).

- The menuconfig target is added, to allow the configuration of modules
  using the Kconfig system.
2019-12-04 15:23:51 +01:00
Cenk Gündoğan
07c84a4fc3
Merge pull request #12840 from leandrolanzieri/pr/makefiles_remove_ccache_basedir
makefiles: Generate proper dependency files when using ccache
2019-12-02 11:40:36 +01:00
Leandro Lanzieri
d868c9c5c3 makefiles: Do not set CCACHE_BASEDIR environmental variable
When CCACHE_BASEDIR variable is set, ccache rewrites absolute paths into
relative paths before computing the hash that identifies the compilation
for all the paths under that directory.

The problem is that those paths are also used when the compiler is
called, so the generated dependency files (*.d) will have a relative
path to the object files, and thus, it will not match our rule for
compiling (we use absolute paths). As dependency files define the
targets this way, any change on its dependencies (e.g. an included
header file) will not re-trigger a build.
2019-11-28 15:40:22 +01:00
Gunar Schorcht
5e22de215d makefiles: fix LOG_LEVEL handling 2019-11-27 12:50:47 +01:00
b4da3b464f make: pass BLOBS to makefiles/application.inc.mk
For regular modules, adding files to BLOBS is sufficient to create the
corresponding headers.

Application modules are different, as they use a minimal makefile
(makefiles.application.inc.mk) to build, thus application level
variables are not available.

This commit makes Makefile.include pass BLOBS to the application
Makefile as APPLICATION_BLOBS, and application.inc.mk use that variable
as value for BLOBS.

The indirection is necessary so submakefiles (e.g., those visited by
DIRS) do not hard override BLOBS.
2019-11-18 17:53:48 +01:00
Francisco Molina
f9ebc8658f dist/tools/jlink: cleanup doc 2019-11-18 13:04:42 +01:00
Francisco
9352b88da4
Merge pull request #12417 from cladmi/pr/make/boards/cpu_cpu_model_to_features
Makefile.features: assert CPU is defined by BOARD/Makefile.features
2019-11-12 10:09:23 +01:00
benpicco
c9166c691c
Merge pull request #12435 from fhessel/fix-riotbuild-freebsd
Makefile.include: Fix call to sed for FreeBSD
2019-10-28 11:26:32 +01:00
Francisco
720d4bde4a
Merge pull request #12452 from aabadie/pr/make/fail_by_default_on_expect_errors
Makefile.include: fail by default when errors are expected
2019-10-23 10:47:36 +02:00
6ff2b6408a
Makefile.include: fail by default when errors are expected
The build can still be forced by adding WERROR=0 to the command line
2019-10-22 18:43:55 +02:00
Francisco Molina
45c8eafd42 Makefile.include: remove repeated OS declaration 2019-10-18 10:36:43 +02:00
Francisco Molina
de2ba4ff1a Makefile.include: get OS and OS_ARCH from UNAME 2019-10-18 08:46:51 +02:00
Francisco Molina
c010f59b8c Makefile.include: remove repeated OS declaration
- OS := $(shell uname) is already declared in `Makefile.include`
  re-declaring it means it will be re-evalauted multiple times
  uselessly.
2019-10-18 08:46:51 +02:00
Francisco
01779508d6
Merge pull request #12394 from aabadie/pr/make/iotlab_support_fix
make/testbed-support: fix error with FLASHFILE not defined
2019-10-17 23:21:12 +02:00
8a877b58df
Merge pull request #12479 from fjmolinas/pr_ensure_port_is_set
makefiles/tools/serial: ensure PORT is set and fail early.
2019-10-17 10:56:32 +02:00
Juan Carrano
fe9704dbd6 makefiles/tools/serial: ensure PORT is set and fail early.
By ensuring the PORT auto-detection worked, we can give meaningful
error messages and fail earlier.

This uses ensure_value from makefiles/utils/checks.mk. An include was
added to Makefile.include to make this fuction available to all other
makefiles.
2019-10-17 08:54:16 +02:00
8d0afb2d5a
Merge pull request #12468 from cladmi/pr/make/parallel_flash_test
Makefile.include:  TERMFLASHDEPS to TERMDEPS so it also applies to `test`
2019-10-16 11:46:18 +02:00
41a2249ec6
Makefile.include: include iotlab.single.inc.mk before checking FLASHFILE
This way FLASHFILE is either already defined by the board and, if not,
the default one for iotlab can be used.
2019-10-16 11:44:59 +02:00
6c7acf4188
Merge pull request #12453 from aabadie/pr/make/features_blacklisted
make: handle blacklisted features separately from missing requirements
2019-10-15 19:15:10 +02:00
benpicco
c9b76a9585
Merge pull request #12406 from maribu/pain_in_the_ass
examples: Moved CI infos to Makefile.ci
2019-10-15 14:40:40 +02:00
42f9689c7d
make: manage blacklisted features independently 2019-10-15 11:39:16 +02:00
Marian Buschsieweke
ba90ba2e2f
examples: BOARD_INSUFFICIENT_MEMORY -> Makefile.ci
- Decluttered Makefile by moving BOARD_INSUFFICIENT_MEMORY lists from Makefile
  to Makefile.ci
- Optimized the list for use of tools:
    - One entry per line reduces the number of merge conflicts
    - One entry per line allows alphabetical sorting e.g. via Vim's sort command
- Sorted all lists alphabetically
2019-10-15 09:55:07 +02:00
cc80961b5f make: allow feature based blacklisting (FEATURES_BLACKLIST) 2019-10-13 21:03:41 +02:00
Frank Hessel
ec869ebef9
Makefile.include: Fix call to sed for FreeBSD 2019-10-13 15:33:53 +02:00
cladmi
a37ce12fa3
Makefile.features: assert CPU is defined by BOARD/Makefile.features
CPU must now be defined by `$(RIOTBOARD)/$(BOARD)/Makefile.features` or
one of its common included Makefile.features file.
The cpu `Makefile.dep` file can now automatically be included when it exists.
2019-10-10 12:54:19 +02:00
Gaëtan Harter
18ae34609c
Makefile.include: put TERMFLASHDEPS in TERMDEPS
This makes it now apply also to `test` automatically.
2019-10-10 11:56:57 +02:00
Gaëtan Harter
4fe875c92f
Makefile.include/term: define 'flash/flash-only' as TERMFLASHDEPS
This puts the handling of `flash/flash-only` in common for both
`term/cleanterm` commands.
2019-10-10 11:55:43 +02:00
Gaëtan Harter
2c3c275694
Makefile.include: also do 'cleanterm' after 'flash-only'
Harmonize with `term`.
2019-10-10 11:52:20 +02:00