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

43 Commits

Author SHA1 Message Date
df18af5195
Make: default to docker with generate-Makefile.ci 2023-02-04 16:53:49 +01:00
820a895684
Make: rename create-Makefile.ci to generate-Makefile.ci
With this rename it is in line with the other generate-* targets
2023-02-04 16:51:36 +01:00
Gunar Schorcht
ad9cdeb855 makefiles: undefine BOARD_VERSION in info-global.inc.mk 2022-08-30 15:08:39 +02:00
Francisco Molina
b5197db03f buildsystem: split default modules include early and late
DEFAULT_MODULEs declared in defaultmodules_regular.inc.mk MAY only be
disabled at APPLICATION level or in BOARD/CPU Makefile.default. These
modules MAY have complex dependencies themselfs.

DEFAULT_MODULEs declared in defaultmodules_no_recursive_deps.inc.mk MAY be disabled
during dependency resolution. The MUST only have dependencies against
modules with no dependencies themselfs, and these dependencies must
be defined in makefiles/defaultmodules._deps.inc.mk
2022-06-02 12:56:59 +02:00
chrysn
a2e1b92e1d makefiles: Define RUST_TARGET for use with Cargo / Rust
For RISC-V and Cortex-M-not-3, triples are known and have worked in some
configuration, but do not work at the moment and stay disabled until the
reference platforms (native, M3) have been established well.
2021-12-14 12:55:13 +01:00
Leandro Lanzieri
c5b29916eb
makefile.dep: require arch_ cpu_core_ features first 2021-11-18 09:00:35 +01:00
Benjamin Valentin
3303b8c16a Makefile.include: rename Makefile.ci target to create-Makefile.ci
If we

    -include Makefile.ci

and `Makefile.ci` does not exist, but we provide `make` with a way
on how to do so, it will try to create `Makefile.ci`.

This is not what we want, but I don't know how to disable this automagic.
So rename the target to `create-Makefile.ci` to avoid the conflict.
2021-11-15 20:20:11 +01:00
benpicco
7c8504186e
Merge pull request #16109 from benpicco/dist/tools/create_makefile.ci.sh
tools/insufficient_memory: add create_makefile.ci.sh and Makefile.ci make target
2021-11-15 18:12:01 +01:00
Benjamin Valentin
0b3e4cd43f tools/insufficient_memory: add create_makefile.ci.sh 2021-11-15 17:41:54 +01:00
Francisco Molina
bc8bfc7bb9
makefiles/info-global.inc.mk: fix DEFAULT_MODULE inclusion 2021-05-04 11:28:17 +02:00
Francisco Molina
8d63bc10c9
makefiles/info-global.inc.mk: reset features_required_any 2021-02-16 16:17:46 +01:00
Francisco Molina
c6b837b99e
makefiles/info-global.inc.mk: add initial default modules inclusion 2020-09-14 19:01:33 +02:00
Francisco Molina
8ab8d04e9b
makefiles/info-global.inc.mk: include FEATURES_CONFLICTS
If there are FEATURES_CONFLICTING consider the application not
supported for the BOARD.
2020-08-13 09:29:34 +02:00
Leandro Lanzieri
4d65bc8e0a
cpu: Rename CPU_ARCH to CPU_CORE 2020-06-16 12:05:40 +02:00
bd919cf2f1
Merge pull request #14129 from fjmolinas/pr_fix_info-boards-supported
makefiles/info-global.inc.mk: fix info-boards-supported
2020-05-25 21:50:12 +02:00
Leandro Lanzieri
8bb51e9423
makefiles/info-global: Remove dependency resolution cache
This removes a preliminar dependency resolution that is performed
without including features, to skip a full dependency resolution when
boards can be proven to be unsupported on an earlier stage.

This was introducing issues on some boards since the blacklisting of
some features depends on board information which is not available at the
time of performing this resolution.
2020-05-25 11:07:15 +02:00
Francisco Molina
8eee779c50
makefiles/info-global.inc.mk: add info-boards-features-blacklisted 2020-05-25 09:48:36 +02:00
Francisco Molina
1c01e46956
makefiles/info-global.inc.mk: fix info-boards-supported
When using eval the function board_unsatisfied_features is evaluated
twice, in the first evaluation this will lead to the previous value
for `BOARDS` to be expanded, so escape all occurrences.
2020-05-25 09:45:06 +02:00
Marian Buschsieweke
ba7815163c
Makefile*: Allow multiple external board dirs
- Add the new EXTERNAL_BOARD_DIRS variable that can contain a space separated
  list of folders containing external boards
- Introduce $(BOARDDIR) as shortcut for $(BOARDSDIR)/$(BOARD)
- Map the existing BOARDSDIR to the new approach
    - If BOARDSDIR is provided by the user, it will be added to
      EXTERNAL_BOARD_DIRS for backward compatibility. (And a warning is issued
      to encourage users migrating to EXTRA_BOARDS.)
    - BOARDSDIR is updated after the board is found to "$(BOARDDIR)/..".
        - Useful for `include $(BOARDSDIR)/common/external_common/Makefile.dep`
        - Provides backward compatibility
2020-04-29 18:32:39 +02:00
Francisco Molina
abff884165
makefiles/info-global.inc.mk: undefine CPU_ARCH and CPU_FAM
Undefine variables that shouldnt be set at the start of resolution
and that might be used in dependency resolution.
2020-04-03 09:17:23 +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
Francisco Molina
dd8e9ae627
makefiles/info-global.inc.mk: reset BOARDSDIR 2020-02-11 15:26:04 +01:00
Francisco Molina
cacdd56348 makefiles/info-global.inc.mk: RIOTBOAR as BOARDSDIR fallback 2019-12-30 17:15:08 +01:00
a21743a0ac
make: handle blacklisted features in info-boards-supported 2019-10-15 11:39:16 +02:00
cc80961b5f make: allow feature based blacklisting (FEATURES_BLACKLIST) 2019-10-13 21:03:41 +02:00
Gaëtan Harter
58cf46c706
make: add targets to debug dependencies variables
Add a 'dependency-debug' and a 'DEPENDENCY_DEBUG=1' option for
'info-boards-supported' to save some variables used when resolving
dependencies.

Print some some 'sorted' variables to simplify comparing the actual value
when the parsing order changed.

This should help tracking changes introduced when refactoring the
dependency parsing.
2019-10-07 14:45:40 +02:00
Gaëtan Harter
4516905c0f
makefiles/info-global.inc.mk: bug: honor DEFAULT_MODULE$
The parsing for info-boards-supported was completely ignoring default
modules.
2019-08-21 17:57:30 +02:00
Gaëtan Harter
8c0120acd5
makefiles/info-global.inc.mk: bug: handle FEATURES_CONFLICT value
The value must be saved from the original value to allow restoring it.

This has currently no impact on 'info-boards-supported' as it is
currently ignored.
2019-08-21 17:16:32 +02:00
Gaëtan Harter
2689bb0366
makefiles/info-global.inc.mk: bug: fix DISABLE_MODULE_GLOBAL value
The value must be saved from the original value to allow restoring it.

This has currently no impact as 'makefiles/defaultmodules.inc.mk'
and 'DISABLE_MODULE' are ignored in this parsing.
2019-08-14 17:35:08 +02:00
cladmi
168cb62ba5
makefiles/info-global.inc.mk: Reset CPU/CPU_MODEL value when reading deps
Part of moving CPU/CPU_MODEL definition to Makefile.features to have it
available before Makefile.include.
2019-07-01 17:23:14 +02:00
Gaëtan Harter
a379d95695
Merge pull request #11670 from aabadie/pr/boards/remove_features_mcu_group
boards/*: remove unused FEATURES_MCU_GROUP variable
2019-06-17 12:41:36 +02:00
Francisco
ff317f2221
Merge pull request #11492 from cladmi/pr/features/declarative
Makefile.features: add declarative FEATURES_ variables definition
2019-06-14 18:03:24 +02:00
27e5aa51be
makefiles/info-global: remove use of FEATURES_MCU_GROUP
This is the last use of FEATURES_MCU_GROUP variable and thus it
deprecates it.
2019-06-14 11:32:15 +02:00
Gaëtan Harter
6130918ca8
Makefile.include: use the variables from makefiles/boards.inc.mk
BOARDS is defined, so the `find` line in `makefiles/info-global` is not
needed anymore.
2019-06-07 16:32:04 +02:00
Gaëtan Harter
e1c60ead36
Makefile.features: declare FEATURES_MISSING and make use of it
Put the definition of `FEATURES_MISSING` in common and use the variable
instead of duplicating code.
2019-05-28 19:21:53 +02:00
Gaëtan Harter
700b5fb835
makefiles: Update FEATURES_OPTIONAL meaning
Update the FEATURES_OPTIONAL meaning to be more in line since
FEATURES_USED is defined. Handle FEATURES_OPTIONAL as a configuration from
the BSP/build that should not be changed anymore after.

`FEATURES_OPTIONAL` are by definition optional so are not supposed to
cause a build to fail.
Only the 'REQUIRED' ones that are not 'PROVIDED' are 'MISSING'.

* Do not change FEATURES_OPTIONAL to remove REQUIRED features
  * Prepare for having a different variable for the previous value
* Update dependency resolution/info-build as FEATURES_OPTIONAL cannot be missing
2019-05-28 19:21:53 +02:00
Gaëtan Harter
7d326e663b
Makefile.features: add a common file for the features parsing
This will allow sharing it between Makefile.include and
makefiles/info-global.inc.mk.

Also some common variables definition can also be moved to here.

Part of moving CPU/CPU_MODEL definition to Makefile.features to have it
available before Makefile.include.
2019-05-02 17:45:51 +02:00
61f1b941ce make: replace curly braces with parenthesis 2018-03-22 20:43:15 +01:00
Hauke Petersen
a1d5e0fe13 make/info-global: adapt for common board folder 2017-11-30 10:26:36 +01:00
66bd9b0295
Merge pull request #7809 from smlng/makefiles/fix_info_targets
makefiles: fix (and add) info targets
2017-11-02 16:10:14 +01:00
smlng
fe1a99e1b1 makefiles: fix duplicate for missing features 2017-10-24 14:08:52 +02:00
bbae3f32c2 make: fix info-buildsizes-diff 2017-10-23 23:02:07 +02:00
daa277b36e make: refactor info- and buildtest targets 2017-09-14 13:15:53 +02:00