Compilation du moteur dans Docker : make engine
Image ustagammon/build-c (Debian trixie, gcc, GLib pour les seuls outils de génération), construite par make setup. engine/engine.mk compile le moteur et engine-cli, et génère gnubg.wd et les bases .bd avec makeweights et makebearoff, comme le Makefile.am de gnubg. Dépendances suivies : un second make engine ne recompile rien. make build appelle make engine. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
da5fa71ff8
commit
05d59c6acb
@@ -11,10 +11,17 @@ BUILD_DIR := build
|
||||
|
||||
# Outils lancés dans Docker (aucune installation sur le PC).
|
||||
SHELLCHECK_IMAGE := koalaman/shellcheck-alpine:v0.10.0
|
||||
# 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
|
||||
export SHELLCHECK_IMAGE BUILD_C_IMAGE
|
||||
|
||||
.PHONY: help setup build test lint deploy clean
|
||||
# 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
|
||||
|
||||
help: ## Liste les commandes disponibles
|
||||
@echo "Ustagammon : commandes disponibles"
|
||||
@@ -25,10 +32,16 @@ setup: ## Installe la chaîne d'outils (images Docker) ; sans effet si déjà fa
|
||||
@command -v docker >/dev/null || { echo "Docker est requis : sudo apt install docker.io"; exit 1; }
|
||||
@docker image inspect $(SHELLCHECK_IMAGE) >/dev/null 2>&1 \
|
||||
|| docker pull $(SHELLCHECK_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
|
||||
|
||||
Reference in New Issue
Block a user