build: require hardware profile for recovery footprint script

This commit is contained in:
Sebastien L
2026-02-11 21:33:28 +00:00
parent fe6fda1305
commit 41c3056184
2 changed files with 57 additions and 3 deletions

View File

@@ -3,8 +3,61 @@ set -euo pipefail
source /opt/esp/idf/export.sh >/dev/null 2>&1
BUILD_DIR="${1:-build-recovery-trim}"
DEFAULTS="sdkconfig.defaults;sdkconfig.recovery.defaults"
usage() {
cat <<'EOF'
Usage:
build-scripts/build_recovery_size.sh <platform|defaults-file> [build-dir]
Platform aliases:
i2s -> build-scripts/I2S-4MFlash-sdkconfig.defaults
muse -> build-scripts/Muse-sdkconfig.defaults
squeezeamp -> build-scripts/SqueezeAmp-sdkconfig.defaults
Examples:
build-scripts/build_recovery_size.sh muse
build-scripts/build_recovery_size.sh i2s build-recovery-i2s
build-scripts/build_recovery_size.sh build-scripts/Muse-sdkconfig.defaults
EOF
}
if [[ "${1:-}" == "" ]] || [[ "${1:-}" == "-h" ]] || [[ "${1:-}" == "--help" ]]; then
usage
exit 1
fi
PLATFORM_INPUT="$1"
BUILD_DIR="${2:-}"
case "${PLATFORM_INPUT,,}" in
i2s)
PLATFORM_DEFAULTS="build-scripts/I2S-4MFlash-sdkconfig.defaults"
;;
muse)
PLATFORM_DEFAULTS="build-scripts/Muse-sdkconfig.defaults"
;;
squeezeamp)
PLATFORM_DEFAULTS="build-scripts/SqueezeAmp-sdkconfig.defaults"
;;
*)
PLATFORM_DEFAULTS="${PLATFORM_INPUT}"
;;
esac
if [[ ! -f "${PLATFORM_DEFAULTS}" ]]; then
echo "Platform defaults file not found: ${PLATFORM_DEFAULTS}" >&2
usage
exit 2
fi
if [[ -z "${BUILD_DIR}" ]]; then
base="$(basename "${PLATFORM_DEFAULTS}")"
base="${base%-sdkconfig.defaults}"
BUILD_DIR="build-recovery-${base}"
fi
DEFAULTS="${PLATFORM_DEFAULTS};sdkconfig.recovery.defaults"
echo "Using SDKCONFIG_DEFAULTS=${DEFAULTS}"
echo "Build directory: ${BUILD_DIR}"
# Build only the recovery ELF (skip squeezelite.elf target).
idf.py -B "${BUILD_DIR}" -D SDKCONFIG_DEFAULTS="${DEFAULTS}" recovery.elf

View File

@@ -276,4 +276,5 @@ Latest size snapshot (`build/recovery.map`):
- `build/log/idf_py_stderr_output_*`
- `build/log/idf_py_stdout_output_*`
- For recovery-only footprint experiments (without changing shared `sdkconfig`), use:
- `build-scripts/build_recovery_size.sh [build-dir]`
- `build-scripts/build_recovery_size.sh <platform|defaults-file> [build-dir]`
- platform aliases: `i2s`, `muse`, `squeezeamp`