# GNU Backgammon de référence pour les tests d'Ustagammon (ADR 0005). # # Compile gnubg en ligne de commande, sans interface graphique, depuis le # commit figé 14b67984737ded0f6de43d63dcb789f729d9b06b (1.08.003), avec le # scripting Python intégré. Produit aussi, avec les outils officiels de gnubg, # les données dont le moteur embarqué devra se servir à l'identique : # gnubg.wd : poids du réseau, binaires, par `makeweights` ; # gnubg_os0.bd : base de sortie à un côté, par `makebearoff -o 6 -s 7999999` ; # gnubg_ts0.bd : base de sortie à deux côtés, par `makebearoff -t 6x6`. # `make` les produit et `make install` les installe dans /usr/local/share/gnubg/ ; # leurs sommes SHA-256 sont dans /usr/local/share/gnubg/donnees.sha256. FROM debian:trixie ARG GNUBG_DEPOT=https://git.savannah.gnu.org/git/gnubg.git ARG GNUBG_COMMIT=14b67984737ded0f6de43d63dcb789f729d9b06b RUN apt-get update \ && apt-get install -y --no-install-recommends \ autoconf automake autopoint bison build-essential ca-certificates \ flex gettext git libglib2.0-dev libtool pkgconf python3-dev \ && rm -rf /var/lib/apt/lists/* WORKDIR /src/gnubg RUN git init -q . \ && git remote add origin "$GNUBG_DEPOT" \ && git fetch -q --depth 1 origin "$GNUBG_COMMIT" \ && git checkout -q FETCH_HEAD \ && test "$(git rev-parse HEAD)" = "$GNUBG_COMMIT" # Options figées pour un résultat indépendant de la machine hôte : # - pas d'interface graphique, pas de plateau 3D, pas de SQLite ; # - SIMD forcé à SSE2 (présent sur tout x86-64) au lieu de la détection # automatique du processeur de la machine qui construit l'image ; # - drapeaux de compilation par défaut de gnubg (-O3 -ffast-math). RUN ./autogen.sh \ && ./configure --without-gtk --without-board3d --without-sqlite \ --with-python=python3 --enable-simd=sse2 \ && make -j2 \ && make install \ && cd /usr/local/share/gnubg \ && sha256sum /src/gnubg/gnubg.weights gnubg.wd gnubg_os0.bd gnubg_ts0.bd met/Kazaross-XG2.xml > donnees.sha256 \ && printf '%s\n' "$GNUBG_COMMIT" > commit ENV LANG=C.UTF-8 WORKDIR /travail