Étape 0a.3 : moteur embarqué (cœur de gnubg), engine.h et engine-cli

Fusion du travail du sous-agent (branche moteur-embarque-travail) ; plan
supprimé à la clôture, son résultat est repris dans la merge request.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Pierre MARTIN
2026-11-02 14:02:56 +01:00
co-authored by Claude Opus 5.5
68 changed files with 131963 additions and 15 deletions
+17 -4
View File
@@ -15,10 +15,17 @@ SHELLCHECK_IMAGE := koalaman/shellcheck-alpine:v0.10.0
GHERKIN_IMAGE := ustagammon/gherkin:2
# GNU Backgammon de référence, compilé au commit figé par l'ADR 0005.
REFERENCE_IMAGE := ustagammon/gnubg-reference:14b6798
# Chaîne de compilation C (docker/build-c/Dockerfile) : changer l'étiquette
# à chaque modification du Dockerfile, pour que make setup la reconstruise.
BUILD_C_IMAGE := ustagammon/build-c:1
export SHELLCHECK_IMAGE GHERKIN_IMAGE
export SHELLCHECK_IMAGE GHERKIN_IMAGE BUILD_C_IMAGE
.PHONY: help setup build test lint deploy clean reference-image reference
# Lance une commande dans la chaîne C, sous l'utilisateur courant pour que
# build/ lui appartienne.
DOCKER_C := docker run --rm --user "$$(id -u):$$(id -g)" -v "$(CURDIR):/src" -w /src $(BUILD_C_IMAGE)
.PHONY: help setup build engine test lint deploy clean reference-image reference
help: ## Liste les commandes disponibles
@echo "Ustagammon : commandes disponibles"
@@ -32,10 +39,16 @@ setup: ## Installe la chaîne d'outils (images Docker) ; sans effet si déjà fa
@docker image inspect $(GHERKIN_IMAGE) >/dev/null 2>&1 \
|| docker build -q -t $(GHERKIN_IMAGE) docker/gherkin
@$(MAKE) reference-image
@docker image inspect $(BUILD_C_IMAGE) >/dev/null 2>&1 \
|| docker build -t $(BUILD_C_IMAGE) docker/build-c
@echo "Chaîne d'outils prête."
build: ## Compile le moteur (si nécessaire) puis l'application
@echo "Rien à compiler pour l'instant : le moteur arrive à l'étape 0a."
build: engine ## Compile le moteur (si nécessaire) puis l'application
engine: ## Compile le moteur, ses données et build/engine-cli (dans Docker)
@docker image inspect $(BUILD_C_IMAGE) >/dev/null 2>&1 \
|| { echo "Chaîne C absente : lancer d'abord make setup"; exit 1; }
@$(DOCKER_C) make -f engine/engine.mk -j2 --no-print-directory
test: ## Lance tous les tests
@tests/run.sh