Files
Ustagammon/engine/compat/config.h
Pierre MARTINandClaude Opus 5.5 42bfb6506d Couche de compatibilité : shim GLib et en-têtes réduits
engine/compat/ remplace ce que le cœur de gnubg attend du reste de gnubg
et de GLib : config.h écrit à la main (sans threads, C générique, NEON
prévu), shim GLib minimal (dont un analyseur XML pour les tables d'équité
et mmap pour les bases de fin de partie), en-têtes réduits et fonctions de
support.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 13:56:29 +01:00

59 lines
1.8 KiB
C

/*
* config.h -- configuration de compilation du moteur embarqué d'Ustagammon.
*
* Copyright (C) 2026 les auteurs d'Ustagammon.
* Licence : GPLv3 ou ultérieure (voir LICENSE).
*
* Remplace le config.h que produit le configure de GNU Backgammon. Seules les
* macros lues par les fichiers repris dans engine/gnubg/ sont définies ; les
* valeurs suivent ce que configure.ac choisit sur une Debian récente avec gcc.
*/
#ifndef USTAGAMMON_CONFIG_H
#define USTAGAMMON_CONFIG_H
#define VERSION "1.08.003"
#define PACKAGE "gnubg"
#define GETTEXT_PACKAGE "gnubg"
/* Compilateur : gcc ou clang, qui comprennent tous deux ces extensions. */
#define HAVE___ATTRIBUTE__ 1
#define HAVE_FUNC_ATTRIBUTE_CONST 1
#define HAVE_FUNC_ATTRIBUTE_FALLTHROUGH 1
#define HAVE_FUNC_ATTRIBUTE_FORMAT 1
#define HAVE_FUNC_ATTRIBUTE_PURE 1
#define HAVE_FUNC_ATTRIBUTE_UNUSED 1
#define HAVE___BUILTIN_EXPECT 1
#define HAVE___BUILTIN_CLZ 1
/* Bibliothèque C POSIX (glibc, bionic d'Android, musl d'Emscripten). */
#define HAVE_UNISTD_H 1
#define HAVE_STDINT_H 1
#define HAVE_POSIX_MEMALIGN 1
/*
* Pas de threads : une seule instance du moteur, appels sérialisés
* (ADR 0005). USE_MULTITHREAD reste donc non défini.
*/
/*
* Instructions SIMD. Par défaut, C générique partout (x86 compris), ce qui
* est aussi le seul chemin possible en WebAssembly.
*
* Chemin NEON prévu pour arm64 (Android), activé en compilant avec
* -DUSTAGAMMON_NEON ; il reprend les définitions que configure produit avec
* --enable-simd=neon. Le test d'instructions à l'exécution est inutile :
* NEON est obligatoire sur arm64.
*/
#if defined(USTAGAMMON_NEON)
#if !defined(__aarch64__)
#error "USTAGAMMON_NEON n'est prévu que pour arm64"
#endif
#define USE_SIMD_INSTRUCTIONS 1
#define USE_NEON 1
#define HAVE_NEON 1
#define DISABLE_SIMD_TEST 1
#endif
#endif /* USTAGAMMON_CONFIG_H */