Skip to content

Conversation

@maribu
Copy link
Member

@maribu maribu commented Dec 23, 2025

Contribution description

  • Use a constant riotbuild.h header that contains deprecations of macros and documentation and pass that with -include, just like the old dynamic file
  • Pass regular CFLAGS just add command line flags
  • Write -DMODULE_... defines to $(BINDIR)/module_defines.txt and add that as arguments that using @<FILE> syntax. Older systems may be more constraint with the length of the command line supported, and the module defines are the main contributor to an overlong command line.
  • Add a hash of $(CFLAGS) and use that to trigger rebuild of all .o files when changed
  • drop tools needed for creating riotbuild.h - those are not needed anymore

Testing procedure

Generated binaries should not change

Issues/PRs references

Fixes #21966

@maribu maribu added the CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR label Dec 23, 2025
@github-actions github-actions bot added Area: doc Area: Documentation Area: core Area: RIOT kernel. Handle PRs marked with this with care! Area: build system Area: Build system Area: pkg Area: External package ports Area: tools Area: Supplementary tools Platform: ESP Platform: This PR/issue effects ESP-based platforms Area: cpu Area: CPU/MCU ports labels Dec 23, 2025
@maribu maribu force-pushed the build-system/do-not-use-riotbuild branch from ecbd1df to 122b27a Compare December 23, 2025 18:27
- Use a constant `riotbuild.h` header that contains deprecations of
  macros and documentation and pass that with `-include`, just like the
  old dynamic file
- Pass regular CFLAGS just add command line flags
- Write `-DMODULE_...` defines to `$(BINDIR)/module_defines.txt` and
  add that as arguments that using `@<FILE>` syntax. Older systems may
  be more constraint with the length of the command line supported, and
  the module defines are the main contributor to an overlong command
  line.
- Add a hash of `$(CFLAGS)` and use that to trigger rebuild of all .o
  files when changed
- drop tools needed for creating `riotbuild.h` - those are not needed anymore

Fixes RIOT-OS#21966
Using `cmp` and `mv` can be noticeably faster than a python script,
mostly due to python's slow start up time.
@maribu maribu force-pushed the build-system/do-not-use-riotbuild branch from 122b27a to fbfcac0 Compare December 23, 2025 18:36
@mcr
Copy link
Contributor

mcr commented Dec 23, 2025 via email

@riot-ci
Copy link

riot-ci commented Dec 23, 2025

Murdock results

FAILED

fbfcac0 makefiles: drop use of lazysponge

Success Failures Total Runtime
1 0 9975 01m:38s

Artifacts

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area: build system Area: Build system Area: core Area: RIOT kernel. Handle PRs marked with this with care! Area: cpu Area: CPU/MCU ports Area: doc Area: Documentation Area: pkg Area: External package ports Area: tools Area: Supplementary tools CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR Platform: ESP Platform: This PR/issue effects ESP-based platforms

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[build sytem] many system wide macros injected more than once

3 participants