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

540 Commits

Author SHA1 Message Date
Gunar Schorcht
3100345214 makefiles: add riotboot_dfu-util.mk to override board's dfu-util config
Boards that are shipped with a DFU bootloader define the `dfu-util` configuration in their `Makefile.include`. However, when `riotboot_dfu` is used as the DFU bootloader, the board's `dfu-util` configuration must be overridden by the configuration as required by `riotboot_dfu` to use it to flash applications. Therefore, all `dfu-util` configurations are defined as overridable in the board's `Makefile.include` and the configuration as required by `riotboot_dfu` is included before the board's `Makefile.include`.
2022-11-30 19:28:14 +01:00
Teufelchen1
35a06c4806 boards/native: Remove macOS as native target 2022-10-25 19:11:23 +02:00
chrysn
62a6d3c128 makefiles: Add openocd-rtt
JLink presumably has information about the device's RAM available
internally. Not passing the precise symbol area (which would be
available in the ELF file) because a) that'd make the terminal break
when the flashed firmware does not equal the built one, and b) that
would introduce a dependency from `term` to the ELF file that other
terminals don't have.
2022-08-30 09:34:22 +02:00
MrKevinWeiss
01eebc7000
Makefile.include: remove CI-build: skipping link step
This creates diff failures when calling info-modules and info-packages.
Ideally info-modules and info-packages have clean output for the CI build
2022-08-16 10:57:25 +02:00
Marian Buschsieweke
04fc22e031
Merge pull request #18194 from benpicco/dist/tools/cosy-port
dist/tools/cosy: allow to specify port
2022-07-04 14:44:44 +02:00
Marian Buschsieweke
a247e87f8e
Makefile.include: fix typo 2022-06-17 18:31:17 +02:00
Marian Buschsieweke
d1317abc02
makefiles/tests: use FLASHFILE for hash comparision instead of ELFFILE
Let's consider firmwares as identical if their flash files are matching.
This will have the side effect that hash mismatches for ESP32 due to
different .debug sections in the ELFFILE are prevented, as for ESP32
the BINFILE is used.
2022-06-17 18:31:17 +02:00
Benjamin Valentin
1dc555e362 dist/tools/cosy: allow to specify port 2022-06-11 14:46:44 +02:00
Marian Buschsieweke
055a26d9d2
Merge pull request #17662 from fjmolinas/pr_default_modules_early_late
buildsystem: split default modules include early and late
2022-06-02 21:18:17 +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
Benjamin Valentin
1111631c45 makefiles/tools: define DEBUG_ELFFILE and use it for debugging 2022-05-31 12:39:16 +02:00
Francisco Molina
1de00ba504 makefiles/pkg/nimble.adv.mk: add utility to assign adv instance 2022-04-27 08:22:58 +02:00
Francisco Molina
ce35647f6a makefiles: allow to override suit manifest payloads
This adds:

* SUIT_MANIFEST_BASENAME: allow for non slotfiles payloads to have
different names that slotfiles payloads.
* SUIT_MANIFEST_PAYLOADS: firmware payloads to be published with the
manifest.
* SUIT_MANIFEST_SLOTFILES: firmware payloads referenced by the manifest
in the form 'filename:[offset]:[comp_name]' as expected by
gen_manifest.py.

With this the same recipes suit/publish suit/notify can be used with
non slotfiles payloads.
2022-04-21 11:39:25 +02:00
e59a6786a6
Merge pull request #17652 from kaspar030/split_core_lib
core: split out library code
2022-03-10 20:17:07 +01:00
3db7c1150a core: split out library code
This commit splits core into it's scheduler/IPC part and into other code
that is either used or uses the scheduler, through defined APIs.
2022-03-09 21:43:05 +01:00
Marian Buschsieweke
b296ade6b2
dist/tools/usb-serial: Add ttys.py
- Provide a new tool to list and filter TTYs
- Change `Makefile.include` to use `$(RIOTTOOLS)/usb-serial/ttys.py`
  instead of `$(Q)$(RIOTTOOLS)/usb-serial/list-ttys.sh` to implement
  `make list-ttys`
- Extend `makefiles/tools/serial.inc.mk` to allow using the most recent
  port by passing `MOST_RECENT_PORT=1` as environment variable or
  parameter to make

Co-authored-by: chrysn <chrysn@fsfe.org>
Co-authored-by: Koen Zandberg <koen@bergzand.net>
2022-03-09 15:40:36 +01:00
Benjamin Valentin
4d7a3c1dba sys/board_common: add generic board_init() function 2022-02-22 10:04:44 +01:00
ba0f8a7429 make: add initial ubsan support 2022-02-16 12:20:45 +01:00
NikLeberg
a411841322 buildsystem: implement EXTERNAL_PKG_DIRS feature 2022-02-01 18:06:54 +00:00
Leandro Lanzieri
9b95605f78
Merge pull request #17596 from fjmolinas/pr_external_module_deps_kconfig
makefiles.kconfig.mk: use EXTERNAL_MODULE_DIRS in Kconfig resolution
2022-02-01 14:10:15 +01:00
Leandro Lanzieri
83a16fca47
makefiles: avoid extra "/" when including files from external modules
As the `dir` make function considers the last slash as part of the
directory-part of a file name, we don't need to add an extra one.
2022-02-01 11:22:06 +01:00
Francisco Molina
80f63ba1fa makefiles.kconfig.mk: use EXTERNAL_MODULE_DIRS in Kconfig resolution
Using EXTERNAL_MODULE_PATHS works fine when only using Kconfig for
configuratio, but when using it for dependencies this value is not
set since it depends on Kconfig. Instead use EXTERNAL_MODULE_DIRS
and filter matching on Kconfig files.
2022-02-01 10:22:20 +01:00
NikLeberg
140824e69c buildsystem/pkg: expand paths early 2022-01-30 19:58:52 +01:00
Francisco Molina
d2b9b4ce8c Makefile.include: pass IOTLAB_NODE to docker
By default if IoT-LAB Cli Tools V3 is used then BINFILE is used to
flash on IoT-LAB. But BINFILE is not built by default when RIOT_CI_BUILD
is set as a ci optimization.

But since before IOTLAB_NODE was not passed to docker when building it
did not know that it should BUILD BINFILE as well, which led to failures
if doing:

$ IOTLAB_NODE=iotlab-m3.grenoble.iot-lab.info BOARD=iotlab-m3 \
  RIOT_CI_BUILD=1 BUILD_IN_DOCKER=1 make -C examples/hello-world/ flash

But if IOTLAB_NODE is passed at is checks for IoT-LAB cli Tools also
happen in the docker container which leads to a make error since those
are not present in docker.

Therefore add BINFILE to BUILD_FILES if RIOT_CI_BUILD is set, but unset
IOTLAB_NODE once INSIDE_DOCKER.
2022-01-27 14:56:00 +01:00
chrysn
732c369b7e makefiles: Add mechanism to build modules through Cargo
... and to dissect the static libraries into invidial .o files to link
them the same way we link C.
2021-12-14 13:27:41 +01:00
MrKevinWeiss
cf74b26c55
cpu/mips: deprecate mips cpu
Add deprecate note in the mips cpu.
Add warning in make when any mips based board is being used (6lowpan-clicker, pic32-wifire).
2021-12-09 10:14:52 +01:00
MrKevinWeiss
fb6b929cec
Makefile.include: Hide kconfig warning for CI 2021-11-26 09:26:25 +01:00
Leandro Lanzieri
39ebbfd460
makefile.include: add RIOTKCONFIG 2021-11-22 12:25:30 +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
Benjamin Valentin
02f7e3541f Makefile.include: remove warning about EXTERNAL_MODULE_DIRS API change
The warning about the API change is scheduled to be removed by 2020.10.
Since the release has been branched off, we can now drop the warning
going forward.
2021-10-13 16:54:48 +02:00
Benjamin Valentin
74a0f8d8b9 build system: add fallback for RIOT_VERSION_CODE
If the repository was checked out without tags, parsing RIOT_VERSION
will fail.

Fall back to creating a fake release version code based on the current
year and month.
2021-09-27 14:32:30 +02:00
Benjamin Valentin
9267d9dd61 build system: add VERBOSE_ASSERT flag
Add a compile-time convenience variable to enable verbose asserts.
2021-09-23 16:14:16 +02:00
Martine Lenders
ea8e632eda
Merge pull request #16765 from benpicco/RIOT_VERSION_CODE
build system: add machine-readable RIOT_VERSION_CODE macro
2021-09-22 12:47:35 +02:00
Benjamin Valentin
7ef2594327 core/include/kernel_defines.h: add RIOT_VERSION_NUM macro 2021-09-21 17:43:29 +02:00
Martine Lenders
13cc189a8a
Revert "Remove which from shell invocations" 2021-09-03 11:27:03 +02:00
chrysn
6b50033766 makefiles: Replace which with command -v
As the POSIX documentation[1] of `command -v` guarantees that on error
there will be no output (and there will be output in the other cases),
the tests in Makefiles were simplified to test for output equality to
the empty string.

Redirects swallowing error outputs were removed, as the command produces
no error output there (as recommended at [2]).

Existing uses of `command` are simplified as well.

[1]: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/command.html
[2]: https://salsa.debian.org/debian/debianutils/-/blob/master/debian/NEWS
2021-09-02 16:30:46 +02:00
Martine Lenders
ab6f24fb70
Merge pull request #16784 from fjmolinas/pr_curl_wget_unzip_7z_no_error
Makefile.include: only warn if not curl, wget, unzip, 7z
2021-09-02 14:26:51 +02:00
Marian Buschsieweke
a3f880c858
Merge pull request #16509 from fjmolinas/pr_clang_tidy_target
makefiles/clang-tidy: initial support
2021-08-31 15:26:33 +02:00
Francisco Molina
fee3169ba9 Makefile.include: warning not error if not curl, wget, unzip, 7z
The following tools are not needed for every build, its only needed
for a couple of packages like c25519, since most are fetched with git.
2021-08-28 11:55:53 +02:00
chrysn
648e014184 makefiles: Sort >/dev/null and 2>&1
Redirecting `2>&1 >/dev/null` moves stderr to stdout first and then
stdout to /dev/null; when checking for command existence or otherwise
silencing output, this is usually not desired (but only starts producing
errors when the actual command fails, which is often not tested).
2021-08-24 14:41:54 +02:00
MrKevinWeiss
652e4f41c1
cpp: Use modules for cpp and libstdcpp
Also add better error message when kconfig or make includes a .cpp without cpp module.
2021-07-02 15:11:10 +02:00
Martine Lenders
5d7477fa5f
Merge pull request #16513 from miri64/make/enh/isolate-MORE_QUIET
make: introduce QUIETER
2021-06-03 16:48:33 +02:00
Martine Lenders
04ba724763
make: introduce QUIETER
Makes the functionality of being more quiet on build (setting `QQ` to
`@`) independently configurable from `RIOT_CI_BUILD`.
2021-06-03 13:26:20 +02:00
ebbe2c2aa1
tools/testbed-iotlab: better handle unsupported archis 2021-06-01 17:37:50 +02:00
Francisco Molina
2c18d0d3d6
makefiles/clang-tidy: initial support 2021-05-28 11:57:20 +02:00
Francisco
8cb8bba4e7
Merge pull request #16104 from maribu/external_modules
build system: Rework EXTERNAL_MODULE_DIRS
2021-05-07 23:27:17 +02:00
Marian Buschsieweke
6ac8aba955
build system: rework EXTERNAL_MODULE_DIRS
Previously, external modules had to be individually added to both
EXTERNAL_MODULE_DIRS and USEMODULE. If those where not in sync, this
resulted in build errors.

With this commit, search folders for external modules are added to
EXTERNAL_MODULE_DIRS instead. So lets say the file system structure is
like this

```
└── /path/to/external/modules
    ├── mod_a
    │   ├── Makefile
    │   ├── Makefile.dep
    │   ├── Makefile.include
    │   ├── foo.c
    │   └── include
    │       └── external_module.h
    └── mod_b
        ├── Makefile
        └── bar.c

```

One now adds `/path/to/external/modules` to EXTERNAL_MODULES and only
with `USEMODULE += mod_a` the corresponding module, dependencies and
include settings are actually used. Hence, it is possible to configure
`EXTERNAL_MODULE_DIRS` from `~/.profile` or `~/.bashrc` once and never
needs to worry about them again.
2021-05-07 21:29:05 +02:00