diff --git a/.gitattributes b/.gitattributes index 3e5b64f..6755504 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,8 +1,11 @@ -*.h eol=lf -*.hpp eol=lf -*.c eol=lf -*.cpp eol=lf -.git* eol=lf +# Line endings are the repository's, not the editing machine's: this checkout +# is reached from two hosts, and a file rewritten by a Windows tool comes back +# with every line changed unless something says otherwise. Naming the source +# extensions left Markdown, Python, shell and CMake to whatever the writing +# 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 *.cppproj eol=crlf *.sln eol=crlf diff --git a/.vscode/settings.json b/.vscode/settings.json index b129e62..2e05975 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -11,14 +11,13 @@ "--header-insertion=never" ], - // The presets are the build interface; the toolchain file inside the - // libavr submodule is the one place the compiler is chosen. The submodule - // carries no local/toolchain for it to discover, so the prefix is named - // here, for the window that opens this folder. + // The presets are the build interface, and the toolchain file inside the + // libavr submodule is the one place the compiler is chosen. **No prefix is + // named here**: a committed file may not name a path that is true of one + // 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.environment": { - "LIBAVR_TOOLCHAIN": "D:/dev/libavr/local/toolchain/avr-gcc-16.1.0-mingw" - }, "cmake.configureOnOpen": true, "cmake.options.statusBarVisibility": "compact", diff --git a/libavr b/libavr index 8521f48..4cc850f 160000 --- a/libavr +++ b/libavr @@ -1 +1 @@ -Subproject commit 8521f48a3361100c5f3e3c5004a5ff415e2d1484 +Subproject commit 4cc850f200df6bfc2f5c9448b85860d79987e1d9 diff --git a/pureboot b/pureboot index 07b4790..a3bd469 160000 --- a/pureboot +++ b/pureboot @@ -1 +1 @@ -Subproject commit 07b47905cad7e60137a37b3a2cc9741facf0a48e +Subproject commit a3bd46917f8b6bb961e8fb099677752e07f75ec4 diff --git a/tools/check.sh b/tools/check.sh new file mode 100755 index 0000000..40de33e --- /dev/null +++ b/tools/check.sh @@ -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" "$@"