Files
esp32_test_littlefs/Makefile
T
2026-06-08 14:33:53 +02:00

133 lines
7.5 KiB
Makefile
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ============================================================
# Makefile – LittleFS test ESP32-S3
# Usage :
# make BOARD=esp32s3_zero # build
# make flash BOARD=esp32s3_zero # build + flash firmware
# make flashfs BOARD=esp32s3_zero # upload la partition LittleFS
# make monitor BOARD=esp32s3_zero # ouvre le moniteur série
# make all BOARD=esp32s3_n16r8v # build + flash firmware + flashfs
# make clean # nettoyage
#
# Boards disponibles :
# esp32s3_zero – Waveshare ESP32-S3-Zero (4 MB flash)
# esp32s3_n16r8v – Generic ESP32-S3 N16R8V (16 MB flash / 8 MB PSRAM OPI)
# ============================================================
# ── Valeur par défaut de la carte ──────────────────────────────
BOARD ?= esp32s3_zero
# ── Outil PlatformIO ───────────────────────────────────────────
PIO := pio
# ── Port série (optionnel, PIO le détecte automatiquement) ─────
# PORT ?= /dev/ttyUSB0
# ── Cibles valides ─────────────────────────────────────────────
VALID_BOARDS := esp32s3_zero esp32s3_n16r8v
.PHONY: all build flash flashfs monitor clean check-board help
# ─────────────────────────────────────────────────────────────
# help (cible par défaut si aucun argument)
# ─────────────────────────────────────────────────────────────
help:
@echo ""
@echo " ┌─────────────────────────────────────────────────────────┐"
@echo " │ Makefile – LittleFS test ESP32-S3 │"
@echo " └─────────────────────────────────────────────────────────┘"
@echo ""
@echo " Utilisation : make <cible> BOARD=<carte>"
@echo ""
@echo " Cartes disponibles :"
@echo " esp32s3_zero – Waveshare ESP32-S3-Zero (4 MB flash)"
@echo " esp32s3_n16r8v – ESP32-S3 N16R8V (16 MB flash / 8 MB PSRAM OPI)"
@echo ""
@echo " Cibles :"
@echo " build – Compile le firmware (défaut)"
@echo " flash – Compile et flashe le firmware"
@echo " flashfs – Upload la partition LittleFS (répertoire data/)"
@echo " monitor – Ouvre le moniteur série (Ctrl+C pour quitter)"
@echo " all – build + flash + flashfs"
@echo " clean – Supprime les artefacts de build"
@echo " help – Affiche ce message"
@echo ""
@echo " Exemples :"
@echo " make BOARD=esp32s3_zero"
@echo " make flash BOARD=esp32s3_n16r8v"
@echo " make all BOARD=esp32s3_zero"
@echo ""
# ─────────────────────────────────────────────────────────────
# Vérification de la valeur de BOARD
# ─────────────────────────────────────────────────────────────
check-board:
@if ! echo "$(VALID_BOARDS)" | grep -qw "$(BOARD)"; then \
echo ""; \
echo " ERREUR : carte inconnue '$(BOARD)'"; \
echo " Cartes valides : $(VALID_BOARDS)"; \
echo ""; \
exit 1; \
fi
@echo " → Carte sélectionnée : $(BOARD)"
# ─────────────────────────────────────────────────────────────
# build – compilation uniquement
# ─────────────────────────────────────────────────────────────
build: check-board
@echo ""
@echo " ── Compilation pour $(BOARD) ──────────────────────────────"
$(PIO) run -e $(BOARD)
# ─────────────────────────────────────────────────────────────
# flash – compilation + upload du firmware
# ─────────────────────────────────────────────────────────────
flash: check-board
@echo ""
@echo " ── Flash firmware → $(BOARD) ──────────────────────────────"
ifdef PORT
$(PIO) run -e $(BOARD) -t upload --upload-port $(PORT)
else
$(PIO) run -e $(BOARD) -t upload
endif
# ─────────────────────────────────────────────────────────────
# flashfs – upload la partition LittleFS (contenu de data/)
# ─────────────────────────────────────────────────────────────
flashfs: check-board
@echo ""
@echo " ── Upload LittleFS partition → $(BOARD) ───────────────────"
ifdef PORT
$(PIO) run -e $(BOARD) -t uploadfs --upload-port $(PORT)
else
$(PIO) run -e $(BOARD) -t uploadfs
endif
# ─────────────────────────────────────────────────────────────
# monitor – moniteur série
# ─────────────────────────────────────────────────────────────
monitor: check-board
@echo ""
@echo " ── Moniteur série ($(BOARD)) – Ctrl+C pour quitter ────────"
ifdef PORT
$(PIO) device monitor -e $(BOARD) --port $(PORT)
else
$(PIO) device monitor -e $(BOARD)
endif
# ─────────────────────────────────────────────────────────────
# all – build + flash + flashfs
# ─────────────────────────────────────────────────────────────
all: build flash flashfs
@echo ""
@echo " ✔ all : build + flash + flashfs terminé pour $(BOARD)"
# ─────────────────────────────────────────────────────────────
# clean – suppression des artefacts
# ─────────────────────────────────────────────────────────────
clean:
@echo ""
@echo " ── Nettoyage ───────────────────────────────────────────────"
$(PIO) run -t clean || true
rm -rf .pio
@echo " ✔ Nettoyage terminé"