deps: the pins advance, and this repository gets a committed gate

libavr moves to its USI I2C rate accounting, the two override surfaces the
fan-controller port filed - a PWM solve that can be pinned, a capture edge that
is a value - and the shared preset loop's own fix. pureboot moves with it. This
firmware names none of them and no image moved.

`tools/check.sh` is new, and its absence was the defect: there was no committed
gate at all, so "run the suite" was a snippet somebody remembered - and the
order in a snippet is the one thing nobody re-derives. Every preset built
before any is tested is subtle and load-bearing, because the mode-identity
check reads the sibling mode's tree and a build-then-test-per-preset run holds
a fresh image against a stale sibling. The loop is libavr's
`tools/check-presets.sh`.

Two defaults stop being the editing machine's. `.vscode/settings.json` named
`D:/dev/libavr/local/toolchain/avr-gcc-16.1.0-mingw`, which is a path true of
one machine (libavr guidance rule 50) and, since the in-repo toolchain copies
went, true of none - `local/machine.cmake` is where a checkout says that and it
already did. And `.gitattributes` gains `* text=auto eol=lf`: naming the source
extensions left Markdown, Python, shell and CMake to whatever wrote them, which
on the Windows side is CRLF, and a rewrite there buries the change it made.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-03 03:53:43 +02:00
parent fb82f0f7a9
commit d6673db131
5 changed files with 27 additions and 14 deletions

13
.gitattributes vendored
View File

@@ -1,8 +1,11 @@
*.h eol=lf # Line endings are the repository's, not the editing machine's: this checkout
*.hpp eol=lf # is reached from two hosts, and a file rewritten by a Windows tool comes back
*.c eol=lf # with every line changed unless something says otherwise. Naming the source
*.cpp eol=lf # extensions left Markdown, Python, shell and CMake to whatever the writing
.git* eol=lf # tool defaulted to, which is CRLF on one of the two.
* text=auto eol=lf
# Atmel Studio writes these and expects them back.
*.vcxproj* eol=crlf *.vcxproj* eol=crlf
*.cppproj eol=crlf *.cppproj eol=crlf
*.sln eol=crlf *.sln eol=crlf

13
.vscode/settings.json vendored
View File

@@ -11,14 +11,13 @@
"--header-insertion=never" "--header-insertion=never"
], ],
// The presets are the build interface; the toolchain file inside the // The presets are the build interface, and the toolchain file inside the
// libavr submodule is the one place the compiler is chosen. The submodule // libavr submodule is the one place the compiler is chosen. **No prefix is
// carries no local/toolchain for it to discover, so the prefix is named // named here**: a committed file may not name a path that is true of one
// here, for the window that opens this folder. // machine (libavr guidance rule 50), so the gitignored local/machine.cmake
// at this repository's root is where a checkout says where its toolchain
// is - one file, and it answers for both hosts.
"cmake.useCMakePresets": "always", "cmake.useCMakePresets": "always",
"cmake.environment": {
"LIBAVR_TOOLCHAIN": "D:/dev/libavr/local/toolchain/avr-gcc-16.1.0-mingw"
},
"cmake.configureOnOpen": true, "cmake.configureOnOpen": true,
"cmake.options.statusBarVisibility": "compact", "cmake.options.statusBarVisibility": "compact",

2
libavr

Submodule libavr updated: 8521f48a33...4cc850f200

11
tools/check.sh Executable file
View File

@@ -0,0 +1,11 @@
#!/usr/bin/env bash
# The task gate: every configure preset built, and only then every one tested.
#
# The loop itself is libavr's (tools/check-presets.sh) because the order in it
# is subtle and was got wrong by hand more than once - the mode-identity checks
# read the sibling mode's tree, so a build-then-test-per-preset run compares a
# fresh image against a stale sibling. Anything this repository needs beyond
# the presets is written after the call, where every tree is built and tested.
set -euo pipefail
cd "$(dirname "${BASH_SOURCE[0]}")/.."
"${LIBAVR_ROOT:-libavr}/tools/check-presets.sh" "$@"