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>
59 lines
1.8 KiB
C
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 */
|