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>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
792f6395bf
commit
42bfb6506d
@@ -0,0 +1,58 @@
|
||||
/*
|
||||
* 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 */
|
||||
Reference in New Issue
Block a user